Gal*_*are 4 python string pattern-matching
我想将字符串与特定模式或单词集匹配,如下所示:
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)
Run Code Online (Sandbox Code Playgroud)
以下是它运行的示例:
In [20]: re.search(r'^the (apple|orange|grape) is (red|orange|violet)', string). groups()
Out[20]: ('apple', 'red')
Run Code Online (Sandbox Code Playgroud)
如果没有匹配则不re.search()返回任何内容.
你可能知道"正则表达式几乎没有",但你几乎写了这个模式.
括号内的部分也可以有自己的正则表达式模式.所以你可以匹配"苹果"和"苹果"
r'the (apple[s]*|orange|grape)