【发布时间】:2015-10-20 17:10:27
【问题描述】:
我有以下场景,我有一组短语,有些是几个单词,有些是单独的单词,我想匹配所有这些短语,但我目前的方法最终匹配单个单词
例如:
我可以匹配的东西:
- 晴天
- 阳光谷
- 天
正则表达式:(sunny( )day|sunny( )valley|day)
句子:今天是晴天
在这里,我希望匹配“晴天”,但是,我的正则表达式总是匹配“天”,可能还有其他包含仅包含天的句子我想匹配。
有谁知道如何设计一个完成这项任务的正则表达式?
【问题讨论】:
-
您有空间捕获组。是故意的吗?
-
@emartinelli 不是故意的,我只是想在此处指定一个空间而不会得到混合结果,也许有更好的方法来做到这一点?
-
你可以使用'\s'来表示一个空格。但即使使用“真实空间”,您也不需要括号,因为在这种情况下,它只会生成额外的匹配项。例如:使用@stribizhev 答案和您的输入,“晴天”和空格将被匹配。要不匹配这个额外的空间,请使用 '\b(sunny\sday|sunny\svalley|day)\b' (demo)