我正在尝试创建正则表达式以匹配文件的路径,但不包括文件本身和驱动器。
c:\foo\bar\baz.txt
C:\FOO\BAR\BAZ.TXT
C:\FoO\BaR\BaZ.TxT
and so on.
Expression should match `foo\bar` (IN any CaSe).
我拥有的基本示例是
\\.*\\
另一个例子是
\\.*(?=\\)
但是我不确定我走的路是否正确。
实时版本在这里:https://regexr.com/4kmu0
答案 0 :(得分:2)
答案 1 :(得分:1)
\([a-z]。*)\
以上表达式将与第1组完全匹配
foo\bar
。
答案 2 :(得分:1)
如果路径的分隔符应为单个反斜杠,则可以使用捕获组并重复匹配\
,然后匹配1次以上而不是\
^[^\\\r\n]*\\([^\\\r\n]+(?:\\[^\\\r\n]+)+)\\[^\\\r\n]+$
^
字符串的开头[^\\\r\n]*\\
不匹配\
或换行符,然后匹配\
(
捕获第1组
[^\\\r\n]+
匹配1次以上而不是\
(?:
非捕获组
\\[^\\\r\n]+
匹配\
,然后匹配1次以上,而不是\
或换行符)+
关闭组并重复1次以上)
关闭第1组\\[^\\\r\n]+
匹配\
,然后匹配1+次而不是\
或换行符$
字符串结尾答案 3 :(得分:1)
将执行以下操作:
:\
这将捕获出现在\
和最后一个/i
之间的所有非空白字符。然后,捕获的组包含必需的文本。
请注意使用s.rstrip('#').partition('-')[2].split('+')
s[s.find('-')+1:-2].split('+')
标志来区分大小写。
答案 4 :(得分:0)
尝试
(?>[a-zA-Z]:\\)(.*)(?>\\.+\..+)