Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python模式匹配问题_Python_Regex - Fatal编程技术网

Python模式匹配问题

Python模式匹配问题,python,regex,Python,Regex,我有以下两条线索 root = 'svn\\456' dir = 'svn\\456\\765' pattern = re.compile('^'+root) matched = pattern.match(dir) 我总是一无所获。但是如果我真的喜欢跟随 root = 'svn\\456' dir = 'svn\456\\765' pattern = re.compile('^'+root) matched = pattern.match(dir) 我被认为是真的 对不起,如果这是我在

我有以下两条线索

root = 'svn\\456'
dir = 'svn\\456\\765'

pattern = re.compile('^'+root)
matched = pattern.match(dir)
我总是一无所获。但是如果我真的喜欢跟随

root = 'svn\\456'
dir = 'svn\456\\765'

pattern = re.compile('^'+root)
matched = pattern.match(dir)
我被认为是真的

对不起,如果这是我在这里错过的最基本的东西。但我只是从python开始


谢谢。

'svn\\\\456'
用作模式的问题是
\
是一个需要转义的特殊字符,因此如果您将第一个模式更改为:
'svn\\\\\456'
,您将得到一个匹配:

import re
root = 'svn\\\\456'
dir = 'svn\\456\\765'

pattern = re.compile('^'+root)
matched = pattern.match(dir) # matched!

您有一个文本字符串,正试图使用该字符串创建正则表达式对象。它包含一个必须转义的特殊正则表达式字符

你需要使用这个函数

以下是一份:


使用
pattern=re.compile('^'+re.escape(root))
和原始字符串。非常感谢这项工作!!!张贴,请检查。如果它为您工作,请考虑接受答案(见)。
import re
root = r'svn\456'
dir = r'svn\456\765'

pattern = re.compile('^'+re.escape(root))
matched = pattern.match(dir)
print(matched)