【问题标题】:regex pattern to match the end of a string匹配字符串结尾的正则表达式模式
【发布时间】:2026-01-25 14:35:01
【问题描述】:

谁能告诉我正则表达式模式来匹配字符串中最后一个“/”右侧的所有内容。

例如,str="red/white/blue";

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

非常感谢!

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

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

    在 Perl 中,这看起来像:

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

    用 JavaScript 编写,如下所示:

    var str = 'red/white/blue'.match(/.*\/(.*)$/);
    

    【讨论】:

    • 我正在使用 javascript,这很好用。非常感谢。但是有一个问题:我也测试了没有“?”使用这种模式 /.*\/(.*)$/ 它似乎也有效。你能告诉我区别吗?再次感谢。
    • 那篇文章很糟糕。它甚至没有示例、分析或示例用途。
    • 贪婪量词在这里会表现得更好,因为它们会一次抓取量化模式可以匹配的所有字符,从而更快地到达字符串的末尾 ($)。我已经编辑了答案。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      应该是

      ~/([^/]*)$~
      

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

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

      【讨论】:

        【解决方案4】:

        这样的东西应该可以工作:/([^/]*)$

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

        【讨论】:

          【解决方案5】:

          使用以下模式:

          /([^/]+)$
          

          【讨论】:

            最近更新 更多