正则表达式最后一次出现?

时间:2011-12-04 10:40:03

标签: regex path

我试图抓住最后一个反斜杠后的最后一部分 我需要 \Web_ERP_Assistant (使用\

我的想法是:

C:\Projects\Ensure_Solution\Assistance\App_WebReferences\Web_ERP_WebService\Web_ERP_Assistant


\\.+?(?!\\)      //  I know there is something with negative look -ahead `(?!\\)`

但是我找不到它。

[Regexer Demo]

7 个答案:

答案 0 :(得分:65)

你的负面前瞻解决方案将是例如是这样的:

\\(?:.(?!\\))+$

here on Regexr

答案 1 :(得分:30)

前瞻性是一个正确的答案,但它可以更清晰地写成:

(\\)(?!.*\\)

这会查找\的匹配项,然后在不匹配的检查中,它会查找任意数量的字符,后面跟着您不希望看到的字符。因为它是否定的,所以只有在找不到匹配项时才会匹配。

答案 2 :(得分:29)

对我有用的是:

.+(\\.+)$

Try it online!

说明:

.+     - any character except newline
(      - create a group
 \\.+   - match a backslash, and any characters after it
)      - end group
$      - this all has to happen at the end of the string

答案 3 :(得分:24)

您可以尝试将其锚定到字符串的末尾,例如\\[^\\]*$。虽然我不确定是否绝对必须使用正则表达式完成任务。

答案 4 :(得分:7)

这个正则表达式怎么样:\\[^\\]+$

答案 5 :(得分:2)

我使用下面的正则表达式来获得结果\

(\\[^\\]+)\\?$

[Regex Demo]

答案 6 :(得分:1)

如果您不希望包含反斜杠,而仅包含其后的文本,请尝试以下操作:([^\\]+)$或unix:([^\/]+)$