我在脚本中有一个if语句,用于查看通过argparse给出的目录是否为UNC路径。但不会以尾随斜线结束。
import re
#dest is set by argparse. but for this purpose i'll set it manually.
#originally i was escaping each \ in dest. But I found that argparse left them alone.
dest = '\\server-name\folder\subfolder'
if re.match ('^\\+[\w\W]+', dest ) and not re.match( '^\\+[\w\W]+\\$', dest):
dest = dest + '\\'
我在ipython中一直在玩这个。第一个声明无法匹配。我在Komodo IDE中使用了RxToolkit,它将正则表达式显示为匹配。我尝试了这个webtool:http://www.pythonregex.com/它也匹配。有什么想法吗?
答案 0 :(得分:5)
您将此传递给re:
^\+[\w\W]+
因为\\
表示\
。您需要做的是使用r
:
if re.match(r'^\\+[\w\W]+', dest ) and not re.match(r'^\\+[\w\W]+\\$', dest):
^ ^
答案 1 :(得分:4)
字符串"\\"
代表单个反斜杠\
。
>>> print('\\')
\
您需要转义\
或使用原始字符串文字来表示两个反斜杠。
>>> print('\\\\')
\\
>>> print(r'\\')
\\
BTW,re.match
检查字符串开头的匹配项;您可以省略前导^
。