Python 使用regexp将字符串中的子字符串与转义引号匹配
我有这样的绳子Python 使用regexp将字符串中的子字符串与转义引号匹配,python,regex,Python,Regex,我有这样的绳子 filter = "emails.type==\"work\"" 我写的regexp用于将不同的内容分组 matchobj = re.search(r"(\w+)(\.)?(\w+)?(==|!=|(like|LIKE))(.*[^\\])", filter) 测试 print("group1 ", matchobj.group(1)) print("group2 ",
filter = "emails.type==\"work\""
我写的regexp用于将不同的内容分组
matchobj = re.search(r"(\w+)(\.)?(\w+)?(==|!=|(like|LIKE))(.*[^\\])", filter)
测试
print("group1 ", matchobj.group(1))
print("group2 ", matchobj.group(2))
print("group3 ", matchobj.group(3))
print("group4 ", matchobj.group(4))
print("group5 ", matchobj.group(5))
结果,
group1 emails
group2 .
group3 type
group4 ==
group5 None
问题在于第5组,该组返回的是None,第5组的预期值是带引号的“work”。您必须删除
like | like
周围的括号,因为它创建了另一个捕获组。所以你有6组而不是5组
(\w+)(\.)?(\w+)?(==|!=|like|LIKE)(.*[^\\])
您必须删除
like | like
周围的括号,因为它会创建另一个捕获组。所以你有6组而不是5组
(\w+)(\.)?(\w+)?(==|!=|like|LIKE)(.*[^\\])