Javaの正規表現で「1つ以上」演算子はどのように使用されますか? たとえば、これを一致させたい:
( (a) (b) (c) ) - マッチ
( (a) ) - マッチ
ここで、a、b、c は任意の文字または数字です
この式の基本的な説明は、1 つの空白で区切られたすべてのセットを含む一連の括弧内の一連の括弧です。
あなたは次のようなものが欲しい
\((\(\w*\))+\)
それがどのように機能するかを明確にするために、視覚的に少し拡大します。
\( # outer bracket
( # start of group
\( # inner bracket
\w* # 0 or more word characters ([0-9a-zA-Z_])
\) # inner bracket
) # end of group
+ # and we do that group 1 or more times
\) # outer bracket
説明: * または + または ? を適用する場合 (エスケープされていない) 括弧内にあるものに適用すると、1 つの要素だけではなく、括弧の内容全体に適用されます。
正規表現に関する質問があるときはいつでも、http://www.regular-expressions.info/reference.htmlで調べます。