gpt4 book ai didi

Javascript正则表达式总是从末尾找到匹配项?

转载 作者:行者123 更新时间:2023-12-02 20:55:57 27 4
gpt4 key购买 nike

我有一个如下所示的字符串

str = "hey there = pola"

现在我需要检查是否有等号 = 及其左边的第一个单词。这就是我所做的

str.match(/\w+(?= *=)/)[0]

所以我得到了想要的结果

但是假设我有一个像这样的字符串

str = "hey there= pola so = boba"

现在我有两个 = 符号。但上面的正则表达式只会给出第一个 = 符号的结果。

是否有任何正则表达式可以始终从字符串末尾查找 = 的第一个实例?

最佳答案

您可以断言右侧是等号,然后匹配除等号之外的任何字符,直到字符串末尾

\w+(?= *=[^=]*$)

部分:

  • \w+
  • (?= 正向前瞻
    • *= 匹配 0 次以上出现的空格,后跟 =
  • [^=]* 匹配 0 次以上出现的 =(使用 [^=\r\n]* 避免跨线休息)
  • $ 字符串结尾
  • ) 关闭前瞻

Regex demo

const regex = /\w+(?= *=[^=]*$)/;
const str = `hey there= pola so = boba`;
console.log(str.match(regex)[0]);

如果不使用前瞻,您可以使用捕获组:

^.*\b(\w+) *=[^=]*$

Regex demo

const regex = /^.*\b(\w+) *=[^=]*$/m;
const str = `hey there= pola so = boba`;
console.log(str.match(regex)[1]);

关于Javascript正则表达式总是从末尾找到匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61484920/

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