如何在匹配不起作用时在主字符串的开头找到子字符串

时间:2018-03-20 18:13:06

标签: python python-3.x

我想在Python 3.x

中搜索另一个字符串的开头

所以我有

for pattern, responses in substrings:
    match = re.match(pattern, statement)
    if match: # etc.

但是 如果其中一个子字符串为'no',则不仅如果第一个单词是“否”,则会找到这个字符串。但如果它是'noggin'例如

如果单词是'no',我怎样才能在开始时搜索'no'

谢谢

3 个答案:

答案 0 :(得分:2)

您需要一个正则表达式word boundary anchor\b,它匹配单词字符和非单词字符之间的边界。

尝试^no\b

请参阅my regex101 example

答案 1 :(得分:0)

'^ no $'...这个正则表达式应该有效。 re.match( '^没有。*',字符串)

导入重新 mat = re.match('^ no。*','no') 打印(垫)

输出: < _sre.SRE_Match对象; span =(0,2),match ='no'>

答案 2 :(得分:0)

只需搜索'no ' - 它在no中找不到noggin,因为后面没有空格:

for pattern, responses in substrings:
    match = re.match(pattern+' ', statement)
    if match: # etc.