How is the "one-or-more" operator used in regex for Java? For example, I want to match this:
( (a) (b) (c) ) - matches
( (a) ) - matches
where a,b,c are any characters or digits
The basic description of this expression is sets of parentheses within a set of parentheses that contains all of the sets separated by one white space
You want something like
\((\(\w*\))+\)
To make it clearer how it works, expand it a bit visually:
\(    # 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
Explanation: If you apply * or + or ? to something that was just in (unescaped) brackets, then it is applied to the entire contents of the brackets instead of to just one element.
Whenever I have a regex question I look it up in http://www.regular-expressions.info/reference.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With