我需要为备份排除筛选器编写一个正则表达式,以排除一个文件夹及其所有子文件夹。
我需要匹配以下内容
folder1/statistics folder1/statistics/* folder2/statistics folder2/statistics/*
我想出了这个正则表达式,它匹配文件夹统计信息,但不匹配统计信息文件夹的子文件夹。
[^/]+/statistics/
如何扩展此表达式以匹配statistics文件夹下的所有子文件夹?
发布于 2016-01-09 09:33:31
使用以下正则表达式:
/^[^\/]+\/statistics\/?(?:[^\/]+\/?)*$/gm
解释:
/
^ # matches start of line
[^\/]+ # matches any character other than / one or more times
\/statistics # matches /statistics
\/? # optionally matches /
(?: # non-capturing group
[^\/]+ # matches any character other than / one or more times
\/? # optionally matches /
)* # zero or more times
$ # matches end of line
/
g # global flag - matches all
m # multi-line flag - ^ and $ matches start and end of lines
发布于 2020-12-09 11:38:28
如果使用|(或):
'.*/statistics($|/.*)'
解释:
.* # any length string
/statistics # statistics directory
($|/.*) # end of string or any string starting with /
它做到了这一点,而且不难理解。使用python re模块进行了测试。
https://stackoverflow.com/questions/34691809
复制相似问题