gpt4 book ai didi

javascript - 正则表达式是否在字符的最后一个实例之后存在字符

转载 作者:行者123 更新时间:2023-12-04 03:41:57 24 4
gpt4 key购买 nike

我正在尝试将一个正则表达式放在一起,该正则表达式将指示字符是否存在于字符串中字符的最后一个实例之后。例如,如果句点“.”,正则表达式将返回一个匹配项。出现在最后一个 '/' 之后

到目前为止,我能够找到/之后字符串最后部分的字符串组合:

   [^\/]+$

但我不确定如何仅在句点“.”时才返回匹配项。包含在最后的字符串部分中。我非常感谢任何帮助。

我意识到可以通过拆分字符串来做到这一点,但我希望存在一种纯正则表达式的方式。

最佳答案

你可以使用

/[^\/.]*\.[^\/]*$/       // The whole match is the required result
/.*\/([^\/.]*\.[^\/]*)$/ // and extract Group 1 contents

参见 regex demo #1regex demo #2 .

第二个在实践中更有效,因为最后一个 / 之后的部分通常更接近较长字符串的末尾,并且通常可以更快地获得匹配。

详细信息

  • [^\/.]* - ./
  • 以外的零个或多个字符
  • \. - 一个点
  • [^\/]* - /
  • 以外的零个或多个字符
  • $ - 字符串结尾。

JavaScript 演示:

const texts = [ 'a/b/c', 'a/b/c.a' ];
texts.forEach( text => {
console.log( text, '(/[^\/.]*\.[^\/]*$/) =>', (text.match(/[^\/.]*\.[^\/]*$/)?.[0] || "No match") );
console.log( text, '(/(.*\/([^\/.]*\.[^\/]*)$/) =>', (text.match(/.*\/([^\/.]*\.[^\/]*)$/)?.[1] || "No match") );
}
)

关于javascript - 正则表达式是否在字符的最后一个实例之后存在字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65891518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com