所以我有这个正则表达式:
String tagsRegex = "^(" + String.join("|", tags) + ")$";
哪个匹配所有字符串tags
。例如,如果tags
为john
,则它将匹配JUST john
,但不匹配johnny
或thejohnman
。
我想要的是匹配*tag*
,换句话说我想匹配包含变量tag
中存储的字符串的每个单词。
任何提示?
答案 0 :(得分:3)
尝试使用正则表达式:
String tagsRegex = "\\w*(" + String.join("|", tags) + ")\\w*";
这假设您的数组tags
没有任何带有特殊正则表达式符号的元素,例如[()*+]
等。
如上所述,如果数组tags
为{"foo", "bar", "baz"}
,那么构建正则表达式将是:
\w*(foo|bar|baz)\w*