我需要一个正则表达式,它会在字符串中找到所有内容,包括最后一个\或/.
例如,c:\ directory \ file.txt应该导致c:\ directory \
答案 0 :(得分:46)
试试这个:(Rubular)
/^(.*[\\\/])/
说明:
^ Start of line/string ( Start capturing group .* Match any character greedily [\\\/] Match a backslash or a forward slash ) End the capturing group
由于.*
的贪婪,匹配的斜杠将是最后一个斜杠。
如果您的语言支持(或要求)它,您可能希望使用与/
不同的分隔符作为正则表达式,这样您就不必转义正斜杠。
此外,如果您正在解析文件路径,您可能会发现您的语言已经有一个库来执行此操作。这比使用正则表达式更好。
答案 1 :(得分:0)
^(.*[\\\/])[^\\\/]*$
答案 2 :(得分:0)
例如,如果您使用 sed ,则可以执行此操作以输出最后一个斜杠之前的所有内容:
echo "/home/me/documents/morestuff/before_last/last" | sed s:/[^/]*$::
将输出:
/home/me/documents/morestuff/before_last