我当前正在使用此代码,但是当输入为False
时它将返回'an'
。如何解决可以返回True
作为输入'an'
的问题?
if re.search('^[^c].*an.*',string):
return True
else:
return False
答案 0 :(得分:4)
return not string.startswith('c') and 'an' in string
更加简单,快速,自我描述
答案 1 :(得分:1)
您可以在开始时使用(?!c)
否定前瞻:
if re.search('^(?!c).*an',s):
正则表达式匹配
^
-字符串的开头(?!c)
-开头不允许c
.*an
-直到最后一次出现an
为止,尽可能多的0个或更多字符。注意:您可能还会使用return bool(re.search('^(?!c).*an',s))
甚至是return re.search('^(?!c).*an',s)
,它们会在if
条件下强制转换为布尔值。