正規表現パターン (Java) を使用して、3 桁のシーケンスと 3 桁のみが連続するものを見つけようとしています。4 桁が一致しません、2 桁が一致しません。
私にとって明らかなパターンは次のとおりです。
"\b(\d{3})\b"
これは、次のような多くのソース文字列のケースと一致します。
">123<"
" 123-"
"123"
ただし、c/1 境界と 3/d 境界は、\b クラスが期待する「単語境界」の一致としてカウントされないため、「abc123def」のソース文字列とは一致しません。
解決策として、非数字 (\D) と単語境界 (\b) の両方を含む文字クラスを追加することを期待していました。しかし、それは違法な構文のようです。
"[\b\D](\d{3})[\b\D]"
次のようなソース文字列の状況で「123」を抽出する式として何を使用できるか知っている人はいますか?
"abc123def"
助けていただければ幸いです。はい、Java では \b のようなコードを \b にダブルエスケープする必要があることは理解していますが、それは私の問題ではなく、これを Java 関係者に限定したくありませんでした。