扩展 Java 正则表达式以匹配包含特定字符串的单词
Expanding Java Regex to match word containing certain string
所以我有这个正则表达式:
String tagsRegex = "^(" + String.join("|", tags) + ")$";
这将匹配字符串 tags
中的所有内容。例如,如果 tags
是 john
,它将只匹配 john
而不是 johnny
或 thejohnman
。
我想要的是匹配*tag*
,换句话说我想匹配每个包含存储在变量tag
.
中的字符串的单词
有什么提示吗?
尝试将正则表达式用作:
String tagsRegex = "\w*(" + String.join("|", tags) + ")\w*";
这是假设您的数组 tags
没有任何带有特殊正则表达式符号的元素,例如 [()*+]
等
如果数组 tags
是:{"foo", "bar", "baz"}
那么构建的正则表达式将是:
\w*(foo|bar|baz)\w*
所以我有这个正则表达式:
String tagsRegex = "^(" + String.join("|", tags) + ")$";
这将匹配字符串 tags
中的所有内容。例如,如果 tags
是 john
,它将只匹配 john
而不是 johnny
或 thejohnman
。
我想要的是匹配*tag*
,换句话说我想匹配每个包含存储在变量tag
.
有什么提示吗?
尝试将正则表达式用作:
String tagsRegex = "\w*(" + String.join("|", tags) + ")\w*";
这是假设您的数组 tags
没有任何带有特殊正则表达式符号的元素,例如 [()*+]
等
如果数组 tags
是:{"foo", "bar", "baz"}
那么构建的正则表达式将是:
\w*(foo|bar|baz)\w*