如何检查字符串是否与Python中的设置模式匹配?

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

Cor*_*den 6

如果这正确回答了你的问题,请告诉我.

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)