Python Regex查找目录路径(\\\\Location\\Location\\Location)

2024-06-24 13:49:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python编写一个regex来查找目录路径:我得到的文本如下所示:

text = "The public disk is: \\\\diskA\\FolderB\\SubFolderC\\FileD"

我试着用:

^{pr2}$

我得到的结果是:

<_sre.SRE_Match object; span=(7, 9), match='\\\\'>

看来正则表达式可以识别\,但不能识别\。。。以前有人遇到过类似的情况吗?请帮忙。欢迎任何建议! 谢谢!!在


Tags: thetext文本路径目录ispublicregex
1条回答
网友
1楼 · 发布于 2024-06-24 13:49:19

看起来你的regex搜索词没有做你想做的事。在

试试这个正则表达式:

import re    
text = r"The public disk is: \\diskA\FolderB\SubFolderC\FileD"

searchtext = r'\\(\\\w+)*\\'

my_regex = re.compile(searchtext)
result = my_regex.search(text)
print(result.group())

>>> \\diskA\FolderB\SubFolderC\

好吧,这是怎么回事?在在线regex编辑器(如https://regex101.com/)上跟踪allong可能会有所帮助

看来你的文件夹都是结构化的

^{pr2}$

因此,我们要查找的结构是以\\开头、以\结尾的结构是一个或多个使用单词字符的磁盘\目录名。在

查询是查找以\开头和结尾的文本段,它们之间有零个或多个\dir语句。所以\ \,\\disk\,\\disk\dir\,都匹配。在

把查询放在一起我们得到

\\ # the starting backslash (escaped because backslash is also a special character)
(\\\w+)* # one or more word characters (\w) preceded by an escaped backslash repeated zero or more times
\\ # finally another backslash, escaped

如果要展开文件路径中的有效字符,请编辑regex的\w部分。例如,如果您希望(和)也作为有效字符:

searchtext = r'\\(\\[\w()]+)*\\'

请注意,我添加了方括号并添加了更多字符。在

方括号基本上是可选字符。。。他们指的是这些人物中的任何一个。有些字符不需要转义,但有些字符需要转义。如。不需要逃走,但[而且]需要。在

一份半完整的清单

searchtext = r'\\(\\[\w()\[\]\{\}:`!@#_\-]+)*\\'

相关问题 更多 >