1

文字列の正しい値のみを取得するための正しいパターンで正規表現をインスタンス化しようとしています。私のテキストファイルには次のものがあります:

Comment ID : 1234.5

次のように正しい値を取得したいと思います。

1234.5

正しい正規表現パターンは何ですか?

ここに私がこれまでに持っているもの

new Regex(@"^Comment ID\s*:\s*(?<comment_id>\w+)", RegexOptions.Multiline | RegexOptions.IgnoreCase); 

しかし、これは不要な文字列「コメント ID」ももたらします。

グループマーカーを使用しないことはできます<comment_id>か?

4

4 に答える 4

1

グループ名を使用する必要はありませんが、インデックスで参照する必要があります。文字列の左側に「:」を含めることができない場合、正規表現は次のようになります。

^[^:]+:\s*(.*?)\s*$

また、インスタンス String.Split() メソッドを使用できます。

"abc : def".Split(new[] { ':' }, 2)
于 2010-11-23T15:31:54.403 に答える
0

何が残っているかを気にしない場合は、:次を使用できます。

"^.*:\s*(?<comment_id>\w+)"

RegexOptionsの場合を無視する文字列がないため、これにもを使用する必要はありません。

于 2010-11-23T14:59:31.890 に答える
0

(?<=コメントID:\ s *)[^ \ s] +

于 2010-11-23T15:42:28.067 に答える
0

指定した正規表現が"^Comment ID\s*:\s*(?<comment_id>\w+)"ドットの後の数字と一致しません

これを使用してみてください: (?!^Comment ID\s*:\s*)(?<comment_id>\d+\.*\d*)

また、コメントIDを任意の単語または\w+に変更できます

于 2010-11-23T15:44:14.447 に答える