【发布时间】:2010-10-20 20:12:00
【问题描述】:
我需要一个正则表达式,它可以在字符串中查找所有内容,包括最后一个 \ 或 /。
例如,c:\directory\file.txt 应该导致 c:\directory\
【问题讨论】:
标签: regex
我需要一个正则表达式,它可以在字符串中查找所有内容,包括最后一个 \ 或 /。
例如,c:\directory\file.txt 应该导致 c:\directory\
【问题讨论】:
标签: regex
试试这个:(Rubular)
/^(.*[\\\/])/
解释:
^ 行首/字符串 ( 开始抓包 .* 贪婪匹配任何字符 [\\\/] 匹配反斜杠或正斜杠 ) 结束捕获组由于.* 的贪婪,匹配的斜线将是最后一个。
如果您的语言支持(或需要)它,您可能希望对正则表达式使用不同于 / 的分隔符,这样您就不必转义正斜杠。
此外,如果您正在解析文件路径,您可能会发现您的语言已经有一个可以执行此操作的库。这会比使用正则表达式更好。
【讨论】:
^(.*[\\\/])[^\\\/]*$
【讨论】:
例如,如果您使用 sed,您可以这样做以输出最后一个斜杠之前的所有内容:
echo "/home/me/documents/morestuff/before_last/last" | sed s:/[^/]*$::
它会输出:
/home/me/documents/morestuff/before_last
【讨论】: