正規表現を使用して、文字列内の 3 つの連続する大文字を見つけようとしています。
私は使用してみました:
\b([A-Z]){3}\b
ある程度機能する私の正規表現として。
ただし、これは文字列のみを返します。また、文字列内にネストされた 3 つの連続する大文字を検索することも必要です。すなわちthisISAtest
。
正規表現を使用して、文字列内の 3 つの連続する大文字を見つけようとしています。
私は使用してみました:
\b([A-Z]){3}\b
ある程度機能する私の正規表現として。
ただし、これは文字列のみを返します。また、文字列内にネストされた 3 つの連続する大文字を検索することも必要です。すなわちthisISAtest
。
正規表現にこれらの単語境界があるのはなぜ\b
ですか?単語境界により、単語文字の後に非単語文字が続く (またはその逆) ことが保証されます。thisISAtest
これらは、一致を妨げるものです。それらを削除すると、あなたは良いはずです!
([A-Z]){3}
もう 1 つのことは、キャプチャ グループを使用している理由がわからないことです。3 つの大文字の最後の文字を抽出していますか? そうでない場合は、次を使用できます。
[A-Z]{3}
明確な量指定子を使用するために必ずしもグループが必要なわけではありません。:)
編集: 大文字がさらに連続するのを防ぐために、否定的なルックアラウンドを利用できます。
(?<![A-Z])[A-Z]{3}(?![A-Z])
(?<![A-Z])
先行する大文字がないことを確認します。
(?![A-Z])
次の大文字がないことを確認してください。