所以我发现这很难解释我在做什么,但很容易在示例中展示。 我有这 2 个字符串,我需要一个正则表达式,它只会返回其中一个的值
Ref Numbers: RCPT:02972, VLBL#:7158461 $930.38
2012-10- 01 5558461 abagaa
我需要 5558461,但不需要 7158461,所以基本上是一个 7 位数字。我试图在存在引用编号的情况下执行此操作,但不会返回任何内容,但如果不返回任何内容,则返回 7 位数字。
我尝试了很多不同的东西,但我就是无法得到我需要的东西。有人知道需要做什么吗?
谢谢
最佳答案
使用如下所示的否定先行断言,
^(?!.*Ref).*\b(\d{7})\b
使用上面的正则表达式并从组索引 1 中获取所需的数字。
> var s = "Ref Numbers: RCPT:02972, VLBL#:7158461 $930.38\n2012-10- 01 5558461 abagaa"
> console.log(/^(?!.*Ref).*\b(\d{7})\b/m.exec(s)[1]);
5558461
负向先行 (?!.*Ref)
在第一个断言将发生匹配的行不会具有像 Ref
这样的字符串
关于javascript - 尝试使用 ECMAScript 正则表达式获取不存在字符串的数据子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27429496/