gpt4 book ai didi

javascript - 使正则表达式匹配下一个实例而不是最后一个实例

转载 作者:行者123 更新时间:2023-11-28 02:03:59 24 4
gpt4 key购买 nike

我有以下一组文本,想要提取粗体文本:

24.SSRTKNEWSHK1HNLYVR1865U30AUG- 4.1 .8387254346122C2 25.SSRTKNEWSHK1YVRHNL1864J22AUG- 5.1 .8387254346123C1 1.1YEUNG/LAWRENCE.KWANLEUNG*JWA 2.1YEUNG/LILY.LIMKUO*JWA 3.1YEUNG/ANDREA.LAUREN*JWA 4.1YEUNG/ETHAN.WESLEY*JWA 5.1YEUNG/WINSTON.JEREMY*JWA 1 WS1864J 8 月 22 日 YVRHNL HK5 600P 904P/O $ E 2 WS1865U 30AUG FR HNLYVR HK5 1010P 656A#1/O $ E

我想使用 Javascript 来结束这样的数组:

[0] ->  1.1YEUNG/LAWRENCE.KWANLEUNG*JWA  
[1] -> 2.1YEUNG/LILY.LIMKUO*JWA
[2] -> 3.1YEUNG/ANDREA.LAUREN*JWA
[3] -> 4.1YEUNG/ETHAN.WESLEY*JWA
[4] -> 5.1YEUNG/WINSTON.JEREMY*JWA

到目前为止我想出的是:/[\d]{1}\.[\d]{1}.+\*[A-Z]{3}/

这与文本匹配,但在同一行上找到的任何匹配项都被视为一个匹配项,因此我最终得到:

[0] ->  1.1YEUNG/LAWRENCE.KWANLEUNG*JWA 2.1YEUNG/LILY.LIMKUO*JWA
[1] -> 3.1YEUNG/ANDREA.LAUREN*JWA 4.1YEUNG/ETHAN.WESLEY*JWA
[2] -> 5.1YEUNG/WINSTON.JEREMY*JWA

如何告诉此正则表达式仅匹配 \*[A-Z]{3} 的下一个实例而不是最后一个实例?

我正在 RegexBuddy 中处理此问题,因此没有真正的 JavaScript 可以显示,但这里是它在“使用”页面上生成的 if 语句:

if (subject.match(/[\d]{1}\.[\d]{1}.+\*[A-Z]{3}/)) {
// Successful match
} else {
// Match attempt failed
}

最佳答案

你的模式是贪婪的,.+捕获了一切,并且模式仍然匹配。

此模式有效:

\d\.\d[A-Za-z].+?\*[A-Z]{3}

我通过添加 .+? 使 .+ 变得懒惰,这意味着它与它所包含的最小字符数相匹配。可以并且模式仍然匹配。

请注意,[\d]{1}\d{1} 相同,而 \d{1}\d 相同。我还强制第二个数字后面的字符为 [A-Za-z],否则第一个 4.1 中的所有内容都将匹配。

关于javascript - 使正则表达式匹配下一个实例而不是最后一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18042718/

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