我有以下场景,其中有一组短语,一些是几个单词,一些是单词,我想匹配所有这些短语但我目前的做法我最终匹配单个单词正则表达式 - 匹配两个单词或一个单词,但优先考虑两个单词
例如:
事情我可以匹配:
- 晴天
- 阳光谷
- 天
正则表达式:(sunny()day|sunny()valley|day)
一句话:今天是一个阳光灿烂的日子
在这里,我希望“阳光灿烂的日子”然而相匹配,我正则表达式始终以“天”相匹配,有可能是其他句子,只包含我想要匹配的一天。
有谁知道如何设计一个正则表达式来完成这个任务?
您有空间捕获组。这是故意的吗? –
@emartinelli不是故意的,我只是想在那里指定一个空间而没有得到混合的结果,也许有更好的方法来做到这一点? – perrohunter
您可以使用'\ s'来表示空格。但即使使用“真实空间”,也不需要括号,因为在这种情况下,它只会生成其他匹配。例如:使用@stribizhev答案和您的输入,'晴天'和空间将匹配。为了不符合这个额外的空间,请使用'\ b(sunny \ sday | sunny \ svalley | day)\ b'[(demo)](https://regex101.com/r/iS9bY7/1) –