2017-02-01 10 views
1

私はこのURLにhttp://localhost:64685/Forum/Runner/runner_job/24af786e正規表現一致「/ 24af786e」の文字と数字

を持っていますurlの終わり。

これはこれまでのところ私の最高の試みである、と私は良いか、正しいことを知らない:/[^/A-Z]{9}/g

誰かが正しい方向に私を案内してもらえますか?

編集

私は正規表現を実行する方法

Regex regex = new Regex(@"/\/[^\W_]{8}$/"); 
Match match = regex.Match(url); 
if (match.Success) 
{ 
    url.Replace(match.Value, ""); 
} 
+1

'/ \/[a-zA-Z0-9] {8} $ /' – anubhava

+0

または '/ \/[^ \ W _] {8} $ /' –

+0

@WiktorStribiżewregexはfalseを返します私は私のURLでそれを使用します –

答えて

2

使用

Regex regex = new Regex(@"/[^\W_]{8}$"); 
// Or, to make it match only ASCII letters/digits: 
// Regex regex = new Regex(@"/[^\W_]{8}$", RegexOptions.ECMAScript); 
url = regex.Replace(url, ""); 

正規表現を交換する前に試合をチェックする必要はありません。 String.Replaceメソッドを使用し、Regex.Replaceではなく、urlに新しい値を割り当てていないことに注意してください(文字列はC#では不変です)。 regex demoを参照してください。

詳細

  • / - リテラル/
  • [^\W_]{8} - 正確8つの文字または数字
  • [^\W_]非ワード(\W)と_文字以外の文字に一致します) $ - 文字列の最後。

ASCII文字/数字にのみ一致する必要がある場合は、RegexOptions.ECMAScriptオプションを渡します。

+1

'[^ \ W_]'と '[a-zA-Z0-9]'の違いは?もしそうでなければ、後者は私の意見ではもっと明白です。 – sp00m

+0

@ sp00m:下の注記を参照してください。 C#では省略時のクラスはデフォルトでUnicode対応であるため、違いがありますが、専用のオプションで無効にすることができます。また、 '[\ w - [_]]'は '[^ \ W_]'の代わりに使用できる読み込み可能な.NET互換の構造体です。スペルアウトされたバリアントも使いやすいです。 –

+0

それで、あなたは 'à'や'ô'など、より多くの文字と一致するでしょうか? – sp00m

関連する問題