我有这样的短语:
computer keyboard
computer keyboard black
computer keyboard black mouse
然后我有一个单词数组,但我只想在每个单词与数组中的条目匹配时返回短语。
这是一个示例数组:
["keyboard","computer","black"]
我想匹配'电脑键盘'和'电脑键盘黑',而不是'电脑键盘黑鼠',因为鼠标不存在于单词列表中。
这是我到目前为止所拥有的:
(?=.*?(keyboard|computer|black)).*
唯一的问题是,显然,这仍然与第3个短语匹配。这是否可以使用正则表达式?
答案 0 :(得分:1)
尝试在多行m
模式中使用^ ... $
...
这意味着:
(?: ... )+
- 匹配必须是从行的开头到行的结尾
(?:keyboard|computer|black)(?: |$)
- 重复一次或多次的小组
?:
- 以空格或行尾结尾的三个单词之一
所有群组都是非捕获dplyr
,因为您只需要一个完整的短语
演示:Haskeline.hs