Ну, вы можете использовать Pattern.quote
, чтобы получить «кусок регулярного выражения» для каждой входной строки. Есть ли в ваших терминах разрывы строк? Если это так, то это может, по крайней мере, сделать жизнь немного сложнее, хотя и далеко не невозможной.
В любом случае, вы просто присоединитесь к цитируемым терминам вместе:
Pattern pattern = Pattern.compile("quoted1|quoted2|quoted3|...");
Возможно, вы захотите использовать Joiner
в Guava для простого объединения строк в кавычках, хотя, очевидно, это не так сложно сделать вручную.
Однако я бы попробовал это, а затем протестировал , действительно ли это эффективнее, чем просто вызов contains
. У вас уже есть тест, который показывает, что contains
слишком медленно?