How can I use regex to match multiple words in java? For example, the
intentFilter("word") at the same time for matching?
string REGEX ="[\\baddAction\\b|\\bintentFilter\\b]\\s*\([\"]\\s*\\bword\\b\\s*[\"]\)";
Could someone tell me what's wrong with this format and how can I fix it?
Best How To :
You are trying to use alternative lists in a regex, but instead you are using a character class (
"[\\baddAction\\b|\\bintentFilter\\b]). With a character class, all characters in it are matched individually, not as a given sequence.
You learnt the word boundary, you need to also learn how grouping works.
You have a structure: word characters + word in double quotes and parentheses.
So, you need to group the first ones, and it is better done with a non-capturing group, and remove some word boundaries from the
word (it is redundant in the specified context):
String rgx ="\\b(?:addAction|intentFilter)\\b\\s*\\(\"\\s*word\\s*\"\\)";
Output of the demo