扩展Java Regex以匹配包含特定字符串的单词

时间:2015-10-06 16:04:39

标签: java regex string substring

所以我有这个正则表达式:

String tagsRegex = "^(" + String.join("|", tags) + ")$";

哪个匹配所有字符串tags。例如,如果tagsjohn,则它将匹配JUST john,但不匹配johnnythejohnman

我想要的是匹配*tag*,换句话说我想匹配包含变量tag中存储的字符串的每个单词。

任何提示?

1 个答案:

答案 0 :(得分:3)

尝试使用正则表达式:

String tagsRegex = "\\w*(" + String.join("|", tags) + ")\\w*";

这假设您的数组tags没有任何带有特殊正则表达式符号的元素,例如[()*+]等。

如上所述,如果数组tags{"foo", "bar", "baz"},那么构建正则表达式将是:

\w*(foo|bar|baz)\w*