Java REGEX - добавление возможностей из списка - PullRequest
0 голосов
/ 10 января 2020

Мне нужен совет, как создать REGEX наилучшим образом (с как можно меньшим количеством кода). Предположим, у меня есть список (который я не знаю его длина до времени выполнения) строк, скажем:

List<String> words = Array.asList("a","b","c");

Я хочу создать этот REGEX, например: (a|b|c).* Является ли oop необходимо для этого? Есть ли способ сделать это в одной строке?

Спасибо

1 Ответ

3 голосов
/ 10 января 2020

Одна строка:

String regex = words.stream().map(Pattern::quote).collect(Collectors.joining("|", "(", ").*"));

Часть map(Pattern::quote) не обязательна, если вы абсолютно уверены , что "слова" не содержат специальных символов регулярных выражений. Держите его, если есть микроскопические c вероятность того, что это может произойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...