我需要找到一个正则表达式来匹配(sun|flower)
之类的单词集中的单词,但只能分离单词,例如"sun flower"
应该匹配两个单词,但是"sunflower"
或"sun-flower"
不应该匹配。
我的第一种方法是使用正则表达式\b(sun|flower)\b
,但在这种情况下"sun-flower"
两个单词都匹配。
尝试使用像(?:^|\s+)(sun|flower)(?:\s+|$)
这样的正则表达式,"sun-flower"
不匹配,可以,但是在使用"sun flower"
测试时,仅sun是匹配的。
我已经看到其他语言(例如java或python)具有先行和后置断言,我们可以使用正则表达式来实现
(?:^|(?<= ))(sun|flower)(?:(?= )|$)
但是在go中不支持断言,所以我想知道是否有一种方法可以使用go实现
最佳答案
删除破折号,然后使用包裹在单词边界中的交替字符:
\b(sun|flower)\b
关于regex - 从一组单词匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61881997/