私は rubular.com を使用して正規表現を構築していますが、そのドキュメントでは次のことを説明しています。
(...) Capture everything enclosed
(a|b) a or b
どうすればOR式を使用できますか?たとえば、「ac」または「bc」のいずれかをキャプチャしたい場合、正規表現を使用できません
(a|b)(c)
右?それ以来、あるグループでは「a」または「b」、別のグループでは「c」をキャプチャしますが、同じではありません。キャプチャした結果をフィルタリングできることは知っていますが、それはもっと手間がかかるようです...
明らかな何かが欠けていますか?それが適切な場合は、Javaでこれを使用しています。
正規表現の実装に応じて、構文(?:…)
でいわゆる非キャプチャグループを使用できます。
((?:a|b)c)
ここで(?:a|b)
はグループですが、その一致を参照することはできません。そのため、ac
またはbc
である((?:a|b)c)
の一致のみを参照できます。
実装にそれがある場合、非キャプチャー括弧を使用できます。
(?:a|b)
ルーブルでも括弧を使用することはなく、|
の優先度は低くなります。たとえば、 a | bcはcccと一致しません