我想将字符串与特定模式或单词集匹配,如下所示:
the apple is red
是查询并且the apple|orange|grape is red|orange|violet
是要匹配的模式。
这些管道代表可以相互替换的单词。该模式也可以分组为[launch app]|[start program]
。当然,我希望模块返回 True 或 False,无论查询是否与模式匹配。
如果还没有库可以做到这一点,那么实现此目的的最佳方法是什么?如果这可以通过简单的正则表达式来完成,那就太好了;但是我对正则表达式几乎一无所知。我正在使用Python 2.7.11
import re
string = 'the apple is red'
re.search(r'^the (apple|orange|grape) is (red|orange|violet)', string)
这是它运行的示例:
In [20]: re.search(r'^the (apple|orange|grape) is (red|orange|violet)', string). groups()
Out[20]: ('apple', 'red')
如果没有匹配项那么re.search()
不会返回任何内容。
您可能“对正则表达式几乎一无所知”,但您几乎编写了该模式。
括号内的部分也可以有自己的正则表达式模式。所以你可以将“apple”和“apples”与
r'the (apple[s]*|orange|grape)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)