This may be a dumb question, but I couldn't find it anywhere:
How can I use the java OR regular expression operator (|) without parentheses?
e.g: Tel|Phone|Fax
You can just use the pipe on its own:
"string1|string2"   for example:
String s = "string1, string2, string3"; System.out.println(s.replaceAll("string1|string2", "blah"));   Output:
blah, blah, string3   The main reason to use parentheses is to limit the scope of the alternatives:
String s = "string1, string2, string3"; System.out.println(s.replaceAll("string(1|2)", "blah"));   has the same output. but if you just do this:
String s = "string1, string2, string3"; System.out.println(s.replaceAll("string1|2", "blah"));   you get:
blah, stringblah, string3   because you've said "string1" or "2".
If you don't want to capture that part of the expression use ?::
String s = "string1, string2, string3"; System.out.println(s.replaceAll("string(?:1|2)", "blah")); 
                        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