Python处理字符串匹配

时间:2015-08-17 12:42:22

标签: python regex string-matching

有一个像这样的字符串:

mystr = 'account_id 37318 not found'

我想知道如何更好地写出一个条件:

if 'account_id' not in str and 'not found' not in str:
    doSomething()

我想必须有类似的东西:

if 'account_id' + %any substring% + 'not found' not in str:
   doSomething()

正则表达式可能会有所帮助,但我使用它并不好。

提前谢谢。

2 个答案:

答案 0 :(得分:4)

您可以使用all,也不要使用内置关键字作为变量名称。

if all(i not in s for i in ('not found', 'account_id')):

示例:

>>> tr = 'account_id 37318 not found'
>>> tr1 = '2735723'
>>> all(i not in tr for i in ('not found', 'account_id'))
False
>>> all(i not in tr1 for i in ('not found', 'account_id'))
True
>>>

答案 1 :(得分:2)

这可能有所帮助。

import re
string = 'account_id 37318 not found'

match = re.search(r'\baccount_id\b.*?\bnot found\b',string)
if match:
    print 'Do something'
else:
    print 'Do nothing'

让我知道它是否有帮助:)。