我正尝试如下将字符串与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")
我总是得到以下输出
没有
字符串不同
我无法理解这里出了什么问题。
有人可以建议/指出我这有什么问题吗?
答案 0 :(得分:2)
您需要 括号,因为否则它们将被正则表达式引擎视为“分组指令”:
str1 = r"Expecting property name: line \d+ column \d+ \(char \d+\)" # ^ ^
请注意,搜索没有不是表示完全匹配:它只是意味着str2
的子字符串需要匹配。因此,您可能想添加^
和$
锚。