匹配包含列表中所有单词的短语-regex
我有这样的短语:匹配包含列表中所有单词的短语-regex,regex,Regex,我有这样的短语: computer keyboard computer keyboard black computer keyboard black mouse 然后我有一个单词数组,但我只想在每个单词都与数组中的一个条目匹配时返回短语 以下是一个示例阵列: ["keyboard","computer","black"] 我想匹配“计算机键盘”和“计算机键盘黑”,但不匹配“计算机键盘黑鼠标”,因为单词列表中不存在鼠标 以下是我目前掌握的情况: (?=.*?(keyboard|computer
computer keyboard
computer keyboard black
computer keyboard black mouse
然后我有一个单词数组,但我只想在每个单词都与数组中的一个条目匹配时返回短语
以下是一个示例阵列:
["keyboard","computer","black"]
我想匹配“计算机键盘”和“计算机键盘黑”,但不匹配“计算机键盘黑鼠标”,因为单词列表中不存在鼠标
以下是我目前掌握的情况:
(?=.*?(keyboard|computer|black)).*
唯一的问题是,显然,这仍然与第三个短语相匹配。这可以使用正则表达式吗?尝试在多行m
模式下使用^(?:(?:键盘|计算机|黑色)(?:|$)+$
这意味着:
^$代码>-匹配必须从行首到行尾
(?:…)+
-分组重复一次或多次
(?:键盘|计算机|黑色)(?:|$)
-以空格或行尾结尾的三个单词之一
所有组都不捕获?:
,因为您只需要完整的短语
演示:谢谢Sergey-works,但现在postgresql抱怨“正则表达式太复杂了”