【发布时间】:2013-08-04 12:02:57
【问题描述】:
我有以下一组文本,想提取粗体文本:
24.SSRTKNEWSHK1HNLYVR1865U30AUG- 4.1 .8387254346122C2 25.SSRTKNEWSHK1YVRHNL1864J22AUG- 5.1 .8387254346123C1 1.1YEUNG/LAWRENCE.KWANLEUNG*JWA 2.1YEUNG/LILY.LILY.LIMKUO*JWA 3.1YEUNG/ANDREA.LAUREN*JWA 4.1YEUNG/ETHAN.WESLEY*JWA 5.1YEUNG/WINSTON.JEREMY*JWA 1 WS1864J 22AUG TH 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
}
【问题讨论】:
-
试试
.+?而不是.+。
标签: javascript regex match