在python中重新匹配to-be-matches-substring以及它之后的任何内容

时间:2016-11-16 15:07:27

标签: python regex

我正在尝试创建一个正则表达式,使其匹配任何字符串,其中包含一些首字母,空格或逗号,后跟字符串'[edit]'。这是我写的代码:

if re.match(r'[A-Za-z ,]+\[edit\]', value):
    print('ha')
else:
    print('na')   

它不会给出假阴性,即它匹配字符串'banana [edit],但它也匹配'banana [edit] a'。据我所知,当它找到所需的子字符串并返回匹配时,它会重新停止评估,而不是这样。

如何编写正则表达式,使其与“banana [edit] a”类型的任何字符串都不匹配?

2 个答案:

答案 0 :(得分:3)

只是做:

if re.match(r'[A-Za-z ,]+\[edit\]$', value):
                                 ^

此处,$表示字符串的结尾。

答案 1 :(得分:2)

如果您希望表达式后面的字符不匹配,只需指定该字符串的末尾带有特殊的if re.match(r'[A-Za-z ,]+\[edit\]$', ... 字符:

subscript