javascript - 尝试使用 ECMAScript 正则表达式获取不存在字符串的数据子集

标签 javascript regex

所以我发现这很难解释我在做什么,但很容易在示例中展示。 我有这 2 个字符串,我需要一个正则表达式,它只会返回其中一个的值

Ref Numbers: RCPT:02972, VLBL#:7158461 $930.38
2012-10- 01 5558461 abagaa

我需要 5558461,但不需要 7158461,所以基本上是一个 7 位数字。我试图在存在引用编号的情况下执行此操作,但不会返回任何内容,但如果不返回任何内容,则返回 7 位数字。

我尝试了很多不同的东西,但我就是无法得到我需要的东西。有人知道需要做什么吗?

谢谢

最佳答案

使用如下所示的否定先行断言,

^(?!.*Ref).*\b(\d{7})\b

使用上面的正则表达式并从组索引 1 中获取所需的数字。

DEMO

> 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/

相关文章:

javascript - 核心 JavaScript 函数使错误、警告或通知消息出现?

javascript - offsetParent 与 parentElement 或 parentNode 的区别

python - 获取正则表达式中匹配的字符数

sql - SQL正则表达式中的尖号

python - findall 和正则表达式,得到正确的模式

javascript - 使用本地存储创建注册和登录页面

javascript - 当用户单击关闭选项卡时如何打开新窗口浏览器?

javascript - request.POST 从 Django 使用 Javascript 提交表单

python - 在python中使用正则表达式匹配字符串的开头和结尾

regex - while、数组和正则表达式的组合