我有一个像这样的正则表达式:
regexp = u'ba[r|z|d]'
Run Code Online (Sandbox Code Playgroud)
如果单词包含bar,baz或bad,则函数必须返回True .简而言之,我需要用于Python的正则表达式模拟
'any-string' in 'text'
Run Code Online (Sandbox Code Playgroud)
我怎么才能意识到这一点?谢谢!
mat*_*ski 132
import re
word = 'fubar'
regexp = re.compile(r'ba[rzd]')
if regexp.search(word):
print 'matched'
Run Code Online (Sandbox Code Playgroud)
Ven*_*thy 92
迄今为止最好的是
bool(re.search('ba[rzd]', 'foobarrrr'))
Run Code Online (Sandbox Code Playgroud)
返回True
Ran*_*Rag 14
Match对象始终为true,None如果没有匹配则返回.只是测试真实性.
码:
>>> st = 'bar'
>>> m = re.match(r"ba[r|z|d]",st)
>>> if m:
... m.group(0)
...
'bar'
Run Code Online (Sandbox Code Playgroud)
输出= bar
如果你想要search功能
>>> st = "bar"
>>> m = re.search(r"ba[r|z|d]",st)
>>> if m is not None:
... m.group(0)
...
'bar'
Run Code Online (Sandbox Code Playgroud)
如果regexp没有找到
>>> st = "hello"
>>> m = re.search(r"ba[r|z|d]",st)
>>> if m:
... m.group(0)
... else:
... print "no match"
...
no match
Run Code Online (Sandbox Code Playgroud)
正如@bukzor所说,如果st = foo bar匹配将无效.所以,它更适合使用re.search.