Python正则表达式查找目录路径(\\\\Location\\Location\\Location)

标签 python regex python-3.x

我正在尝试在 python 中编写正则表达式来查找目录路径:我的文本如下所示:

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

我尝试使用:

import re
my_regex = re.compile(r'\\(.*?)+\\(.*?)')
result = my_regex.search(text)
print(result)

这是我得到的结果:

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

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

最佳答案

看起来您的正则表达式搜索词没有执行您想要的操作。

尝试这个正则表达式:

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\

好吧,那这是怎么回事?继续使用在线正则表达式编辑器可能会有所帮助,例如 https://regex101.com/

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

\\disk\folder\subfolder\sub-subfoler\...etc..\file

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

该查询查找一段以\开头和结尾的文本,并且它们之间有零个或多个\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

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

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

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

方括号基本上是可选字符...它们表示这些字符中的任何一个。有些字符不需要转义,但有些则需要。例如。不需要转义,但 [ 和 ] 需要转义。

半完整的列表是

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

关于Python正则表达式查找目录路径(\\\\Location\\Location\\Location),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52628720/

相关文章:

Python 3 : maketime()

python - python 的 `os.system` 会抛出异常吗?

python - numpy.arrays 的 fsum,稳定求和

从单词前的字符串中删除字符(在 R 中)

删除字符后的所有内容,但保留字符

javascript - 我需要帮助使正则表达式正确 2

python-3.x - 在 Kaggle 上提交

python-3.x - 用户如何将图像上传到 Slack 应用程序?

python - 在 Python 中求解 ODE 时,如何获得比 linspace 更多的变量值? (编辑)

Python解析DNS响应头