2012-04-30 10 views
0

文から正規表現を使用して特定の文字列を取得しようとしています。 これは私の最初の正規表現です:正規表現を使用して文から特定の文字列を取得する

Regex Reg = new Regex(@"^[KB|kb](\w+)[-]?(\w+)$"); 

    From input of : 
    word word word (KB92922-WMP9) word. 
    word word word (KB929222910) word word. 
    word word kb28928282 word word. 

取得することができるはずです。

KB92922-WMP9 
    KB929222910 
    kb28928282 

は、文章として扱う、と私たちは一度に文1を渡すことでデータを取得します。括弧なしでデータを取得しています。

これはどのように機能しますか?何も思いつきません。私はRegex Expressionの権利を持っていると思うが、私はデータをどのように取得するかについてはあまりよく分かっていない。

+0

を使用している正規表現の更新などを。タグが何をするのか。 –

+0

これは、正規表現をテストするときに非常に役立ちます。http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx –

答えて

1

Regex.Matchesを探しています(1つの文にKB12345とKB98765の両方が含まれている可能性があるとします)。 Regex.Matchと似ていますが、一致する部分文字列がすべて表示されます。

テキスト全体が1つの文字列である場合は、それを複数の文に分割する必要はありません。文字列全体ですべての一致を取得するだけで、同じ文字列内のすべての文ですべての一致を収集するのと同じ結果が得られます。

編集:あなたは、「C#の - 」を使用してタイトルを接頭辞ないでください

Regex Reg = new Regex(@"(KB\d+(?:-[\w\d]+)?)", RegexOptions.IgnoreCase); 
+0

ありがとうございました!すぐに働いた – user919789

関連する問題