正则表达式:匹配最后一次出现的“/”和“/”之间的模式和行尾
我不知道如何匹配 LAST / 和行尾之间的模式。
我有很多:
/usr/etc/blabla:/etc/bbb
/usr/etc/blabla:/etc/bffb.gh
/usr/etc/blabla:/local/fffusr
/usr/etc/blabla:/bin/dfusrd
/usr/etc/var:/etc/aaaaaf.ju
例如,我只想匹配“usr”,仅当它位于粗体部分时。
我正在使用 grep。
编辑:
我对此解决方案有一个小问题:
/([^/]+)$
如果它紧接在 / 之后,则与模式不匹配,例如:
/usr/etc/blabla:/bin/usrlala
/bin/bla/:/etc/usr
不匹配
找到它:/([^/]*)$
I can't figure out how to match a pattern between LAST / and the end of the line.
I have tons of:
/usr/etc/blabla:/etc/bbb
/usr/etc/blabla:/etc/bffb.gh
/usr/etc/blabla:/local/fffusr
/usr/etc/blabla:/bin/dfusrd
/usr/etc/var:/etc/aaaaaf.ju
For example i want to match "usr" only when it is in the bold part.
I'm using grep.
EDIT:
I've a small problem with this solution:
/([^/]+)$
It doesn't match the pattern if it is immediately after the /, for example those:
/usr/etc/blabla:/bin/usrlala
/bin/bla/:/etc/usr
are not matched
FOUND IT: /([^/]*)$
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
它将是:
但也许您必须根据您的语言转义斜杠(
/
):It would be:
But maybe you must escape the slash (
/
) depending on your language:为什么要在如此简单的任务上使用正则表达式?
如果您使用的是 php,您可以使用
来确定 / 最后一次出现,然后从那里复制所有内容
正则表达式并不是所有问题的最终解决方案。在这种简单的字符串操作上它会变慢。好吧,你自己的程序解析字符串总是会慢一些(如果写得好的话)。
Why do you want to use regex on such simple task?
If you're using php you can use
to determine last occurance of / and then copy everything from there
regex is not ultimate solution to everything. It will be slower on such simple string operations. Well, it will always be slower to your own procedure parsing a string (if it's written good).
用 JavaScript 回答
answer in javascript
使用 PCRE:
结果:
Using PCRE:
Result: