python re.compile 匹配不匹配 windows 中完整路径中的反斜杠

python re.compile match dosn't match backward slash in full path in windows

我有一个 windows 完整路径,我尝试使用正则表达式对其进行验证。根据 this 我必须添加 "\\\\" 但这不起作用。
我做错了什么?

import re

regex1 = re.compile('downloads\\test_dir\\sql\\my-ee.sql')  
s = "C:\x\xxx\temp\downloads\test_dir\sql\my-ee.sql"  
gg = regex1.match(s)

ggNone

所以有两件事:

  1. s 的赋值应使用转义反斜杠或原始字符串。我更喜欢后者:
s = r"C:\x\xxx\temp\downloads\test_dir\sql\my-ee.sql" 
  1. 您应该使用 search 方法而不是 match 来满足于部分匹配。

然后,您可以在正则表达式中使用 \\,或者——我更喜欢——再次使用原始字符串:

import re

regex1 = re.compile(r'downloads\test_dir\sql\my-ee.sql')  
s = r"C:\x\xxx\temp\downloads\test_dir\sql\my-ee.sql"  
gg = regex1.search(s)
print(gg)