gpt4 book ai didi

Javascript 正则表达式 : match anything up until something (if there it exists)

转载 作者:可可西里 更新时间:2023-11-01 01:21:45 25 4
gpt4 key购买 nike

我是正则表达式的新手,这可能是一个非常简单的问题(希望如此)。

我正在尝试对 3 种字符串使用一种解决方案

  • “45%”,预期结果:“45”
  • “45”,预期结果:“45”
  • "", 预期结果:""

我在尝试什么(让字符串为 str):

str.match(/(.*)(?!%*)/i)[1]

这在我的脑海中听起来像是“匹配任何东西的任何实例,直到找到 '%',否则就匹配任何东西”

在 firebug 的头脑中,这听起来更像是“只匹配任何东西,完全无视负面前瞻”。也让它变得懒惰 - (.*)? - 似乎没有帮助。

让我们暂时忘记在这种特定情况下我只是匹配数字,所以 /\d*/ 就可以了。我试图理解一个一般规则,以便我可以随时应用它。

有人愿意帮助我吗?

最佳答案

简单点怎么样

str.match(/[^%]*/i)[0]

这意味着,匹配零个或多个字符,这不是 % .


编辑:如果需要解析到</a> , 然后你可以解析一个序列 pf 字符,后跟 </a> ,然后丢弃 </a> ,这意味着您应该使用正面前瞻而不是负面。

str.match(/.*?(?=<\/a>|$)/i)[0]

这意味着:延迟匹配零个或多个字符,直到达到 </a>或字符串结尾。

请注意 *?是一个单一的运营商,(.*)?.*? 不同.

(和 don't parse HTML with a single regex 一样。)

关于Javascript 正则表达式 : match anything up until something (if there it exists),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8584697/

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