匹配字符串末尾的正则表达式模式

IT技术 javascript regex
2021-02-02 10:14:29

有人可以告诉我匹配字符串中最后一个“/”右侧的所有内容的正则表达式模式吗?

例如, str="红/白/蓝";

我想匹配“蓝色”,因为它是最后一个“/”右侧的所有内容

非常感谢!

5个回答

使用$元字符匹配字符串的结尾。

在 Perl 中,这看起来像:

my $str = 'red/white/blue';
my($last_match) = $str =~ m/.*\/(.*)$/;

用 JavaScript 编写,这看起来像:

var str = 'red/white/blue'.match(/.*\/(.*)$/);
我正在使用 javascript,这很好用。非常感谢。但有一个问题:我也测试了没有“?” 使用这种模式 /.*\/(.*)$/ 并且它似乎也有效。你能告诉我有什么区别吗?再次感谢。
2021-03-15 10:14:29
那篇文章太可怕了。它甚至没有示例、分析或示例用途。
2021-03-29 10:14:29
贪婪的量词在这里会表现得更好,因为它们会立即获取量化模式可以匹配的所有字符,从而$更快地到达字符串 ( )的末尾我已经编辑了答案。
2021-04-10 10:14:29

使用这个正则表达式模式: /([^/]*)$

应该

~/([^/]*)$~

意思是:匹配 a/然后匹配所有内容,直到最后(,“end”-anchor)不是/( )。[^/]*$

我使用~as 分隔符,因为现在我不需要转义正斜杠/

这样的事情应该工作: /([^/]*)$

你使用什么语言?字符串结尾的正则表达式符号在不同的语言中可能会有所不同。

使用以下模式:

/([^/]+)$