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)
gg
是 None
。
所以有两件事:
s
的赋值应使用转义反斜杠或原始字符串。我更喜欢后者:
s = r"C:\x\xxx\temp\downloads\test_dir\sql\my-ee.sql"
- 您应该使用
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)
我有一个 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)
gg
是 None
。
所以有两件事:
s
的赋值应使用转义反斜杠或原始字符串。我更喜欢后者:
s = r"C:\x\xxx\temp\downloads\test_dir\sql\my-ee.sql"
- 您应该使用
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)