正则表达式最后出现?

我试图捕捉最后一个反斜杠后面的最后一部分
我需要 \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]

318677 次浏览

您可以尝试将它锚定到字符串的末尾,类似于 \\[^\\]*$。尽管我不确定是否一定要使用 regexp 完成任务。

这个 regex: \\[^\\]+$怎么样

你的消极的前瞻性解决方案是这样的:

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

看到它 在 Regexr 上

正确的答案应该是对未来的消极看法,但也可以写得更简洁:

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

这会查找一个匹配项,然后在一个不匹配的检查中,它会查找任意数量的字符,后面跟着你不想看到的字符。因为是阴性,所以只有找不到匹配才能匹配。

对我有效的一个方法是:

.+(\\.+)$

上网试试!

说明:

.+     - 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

我使用下面的正则表达式得到的结果,也当它完成了一个 \

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

[Regex Demo]

如果您不想包含反斜杠,但只包含反斜杠后面的文本,请尝试这样做: ([^\\]+)$或 unix: ([^\/]+)$