2016-08-11 18 views
1

を使用して小文字を継続した場合でも、私は次の段落持っ無視:私はそれが含まれているため、唯一のAUTOCADをキャプチャする正規表現を使用しAWARDCAdを無視したい検証のみ大文字の単語、単語はREGEX

AUTOCAD is the best CAd program and it wins an AWARD for this.

を小文字。

私は次のようregexを書いた:

\b[A-Z0-9]+(?![a-z]+) 

が、それはCAdからもCを取る...しかし、私はそれをしたくありません!

正規表現を改善するにはどうすればよいですか?さ

+2

最初と同じように、最後に\ bを使用できます。 –

+0

それはトリックでした。ありがとう:) –

答えて

2

ポイントは\b[A-Z0-9]+(?![a-z]+)パターンがCにマッチし、次にCAdAをテストすることですが、Aは右小文字d前であることから、(?![a-z]+)先読みは、エンジンのバックトラックを行い、それをチェックするために再び戻って、テストCステップ小文字は続きません。したがって、一致はCです。 Maria suggestsとして、あるいはtrailing \bから\b[A-Z0-9]++(?![a-z]+) - 正規表現を作るために

enter image description here

、この場合には失敗し、あなたは[A-Z0-9]+にバックトラックを禁止する独占的量++(またはそれと同等の原子団(?>[A-Z0-9]+))を使用するのいずれかが必要です。

関連する問題