拜托,请帮帮我吧! 我有一个这样的字符串:
C:\Temp dir\Some one else\File name.ext
我需要捕获File name.ext
但我无法理解正则表达式是怎么做的。
当我尝试创建regexp
时,我无法理解如何仅捕获最后一个符号\
以及它们之间的文本和.
答案 0 :(得分:3)
嗯..以下RegEx应该这样做:
\\[^\\]*\.
根据您的语言和环境,反斜杠和/或其他字符可能需要进一步转义。
答案 1 :(得分:2)
尝试类似:
[^\\]*\.\w+$
使用$
锚定到结束。
正则表达式的细分说明:
[^\\]* Match the file name. (Any characters other than a \)
\. Match the '.'.
\w+ Match the extension.
$ Anchor to end.
答案 2 :(得分:1)
在回答其他问题的评论时,可以选择其他方式。
如果要在反斜杠6和7之间捕获文本,可以执行以下操作:
(?:[^\\]*\\){6}([^\\]*)
说明:
(?: ){6} A non-capturing group repeated 6 times
[^\\]* Any number of characters other than backslash
\\. Followed by backslash
([^\\]*) capture all non backslash characters that follow
您可以在http://regex101.com/r/fP2cL7
看到这一点(有更好的解释)如果你想要反斜杠4和7之间的匹配,它将是
(?:[^\\]*\\){4}((?:[^\\]*\\){2}[^\\]*)
如上所述,“不要对前四个反斜杠做任何事情”,然后捕获“没有反斜杠,然后反斜杠两次,之后再没有反斜杠”。它捕获从反斜杠4到反斜杠7的所有内容(不包括末尾的斜杠)
答案 3 :(得分:0)
(gci $filepath).Name
(?!.*\\).*
这将匹配最后一次斜杠\