gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 08:58:52 27 4
gpt4 key购买 nike

我正在尝试在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com