-2

文字が8OR9 OR 6で始まり、その後に8桁の数字が続く文字列から数字を取得したい。 

例えば

sting string string  85689252 91585555 65987582  sting 12345678 string

出力は次のようになります。

85689252 
91585555 
65987582
4

1 に答える 1

4

おそらく次の正規表現が必要です。

\b[896]\d{7}\b

数字は少なくとも英数字以外の文字で区切られていると想定している_ため、以前\bは単語の境界を一致させていました。

条件を緩和したい場合、正規表現エンジンは先読みと後読みをサポートする必要があります。

(?<!\d)[896]\d{7}(?!\d)

この場合、整数の前後に数字がないようにします。

あなたの質問には8桁が続くと書かれていますが、数字全体が8桁であるべきだと言っているようです - そのため、あなたのサンプル入力に従って答えを変更しました。

Regex.Matches正規表現に一致するすべての文字列を取得するために使用します。

于 2012-12-03T08:16:55.017 に答える