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\
\\ # 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搜索词没有做你想做的事。在
试试这个正则表达式:
好吧,这是怎么回事?在在线regex编辑器(如https://regex101.com/)上跟踪allong可能会有所帮助
看来你的文件夹都是结构化的
^{pr2}$因此,我们要查找的结构是以\\开头、以\结尾的结构是一个或多个使用单词字符的磁盘\目录名。在
查询是查找以\开头和结尾的文本段,它们之间有零个或多个\dir语句。所以\ \,\\disk\,\\disk\dir\,都匹配。在
把查询放在一起我们得到
如果要展开文件路径中的有效字符,请编辑regex的\w部分。例如,如果您希望(和)也作为有效字符:
请注意,我添加了方括号并添加了更多字符。在
方括号基本上是可选字符。。。他们指的是这些人物中的任何一个。有些字符不需要转义,但有些字符需要转义。如。不需要逃走,但[而且]需要。在
一份半完整的清单
相关问题 更多 >
编程相关推荐