Каков лучший способ динамически создать регулярное выражение с помощью переменной количества параметров?
например. если мое регулярное выражение имеет форму:
String REGEX = "\\b(?:word1(?:(\\s+)word2(?:(\\s+)word3)?)?)";
Я хотел бы динамически создать строку регулярного выражения, передавая / заменяя слово X, и я хочу передать переменное число слов, например, только 2 или, возможно, 7.
т.е. в итоге:
REGEX = "\\b(?:cat(?:(\\s+)mouse(?:(\\s+)rain)?)?)";
в одном вызове, а в другом:
REGEX = "\\b(?:cat(?:(\\s+)mouse(?:(\\s+)rain(?:(\\s+)blue(?:(\\s+)?)?)?)?)?)";
Ответ, что регулярные выражения не подходят для этих конструкций, может быть принят при условии, что он хорошо поддерживается.