24

以下の太字の数字を見つける正規表現が必要です:

20 (LBDD hello 312312 ) ポテト 1651 (98)

20 (LBDD ハロー312312バニー) ポテト 1651 (98)

20 ( 312312 ) ポテト 1651 (98)

((\d+)) 数字の 98 を見つけます

カッコ内に他の文字があるとどうしたらいいのかわからない

4

2 に答える 2

70

これは、最初のキャプチャ グループの312312にのみ一致します。

^.*?\([^\d]*(\d+)[^\d]*\).*$

再説明:

^        # Match the start of the line
.*?      # Non-greedy match anything
\(       # Upto the first opening bracket (escaped)
[^\d]*   # Match anything not a digit (zero or more)
(\d+)    # Match a digit string (one or more)
[^\d]*   # Match anything not a digit (zero or more)
\)       # Match closing bracket
.*       # Match the rest of the line
$        # Match the end of the line

こちら を参照してください

于 2012-12-10T18:54:23.407 に答える
2

次の正規表現でそれを行う必要があります

@"\([^\d]*(\d+)[^\d]*\)"

括弧はキャプチャ グループ\(を表し、エスケープされた括弧は、入力文字列の実際の括弧を表します。

注:正規表現を実装する言語によっては、エスケープ文字をエスケープする必要がある場合が\あるため、注意してください。

ただし、これには注意が必要です。正規表現の教科書の制限の1つは、括弧で囲まれたテキストを適切に識別できないことです。

于 2012-12-10T18:52:35.777 に答える