python中带有正则表达式比较的字符串在python中失败

时间:2018-10-16 14:40:45

标签: python regex

我正尝试如下将字符串与python中的正则表达式进行比较,

#!/usr/bin/env python3

import re

str1 = "Expecting property name: line \d+ column \d+ (char \d+)"
str2 = "Expecting property name: line 3 column 2 (char 44)"

print(re.search(str1,str2))

if re.search(str1,str2) :
    print("Strings are same")
else :
    print("Strings are different")

我总是得到以下输出

  

没有
  字符串不同

我无法理解这里出了什么问题。
有人可以建议/指出我这有什么问题吗?

1 个答案:

答案 0 :(得分:2)

您需要 括号,因为否则它们将被正则表达式引擎视为“分组指令”:

str1 = r"Expecting property name: line \d+ column \d+ \(char \d+\)"
#                                                     ^         ^

请注意,搜索没有不是表示完全匹配:它只是意味着str2的子字符串需要匹配。因此,您可能想添加^$