文字が8OR9 OR 6で始まり、その後に8桁の数字が続く文字列から数字を取得したい。
例えば
sting string string 85689252 91585555 65987582 sting 12345678 string
出力は次のようになります。
85689252
91585555
65987582
おそらく次の正規表現が必要です。
\b[896]\d{7}\b
数字は少なくとも英数字以外の文字で区切られていると想定している_
ため、以前\b
は単語の境界を一致させていました。
条件を緩和したい場合、正規表現エンジンは先読みと後読みをサポートする必要があります。
(?<!\d)[896]\d{7}(?!\d)
この場合、整数の前後に数字がないようにします。
あなたの質問には8桁が続くと書かれていますが、数字全体が8桁であるべきだと言っているようです - そのため、あなたのサンプル入力に従って答えを変更しました。
Regex.Matches
正規表現に一致するすべての文字列を取得するために使用します。