为了账号安全,请及时绑定邮箱和手机立即绑定

数字和句点后第一个数字的正则表达式

数字和句点后第一个数字的正则表达式

qq_遁去的一_1 2023-06-15 17:14:02
我有一个包含名称和地址的有序列表,其结构如下:1. Last, First  123 Main St  buncha     buncha buncha2. Lasta, Firsta 234 Lane St etc etc所以我需要一个正则表达式来找到紧跟在带句点的数字之后的数字。所以在这种情况下,一个数组包含[123, 234]. 我试过几种模式。我认为最接近的是/(?![0-9]+\.)[0-9]+/gim; 不幸的是,这只会返回每个数字,但我认为它在正确的区域。任何帮助,将不胜感激。
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

使用正向后视来显式匹配地址中的数字、句点和它与数字之间的文本。


const string = `1. Last, First  123 Main St  buncha 

    buncha buncha


2. Lasta, Firsta 234 Lane St etc etc`;


let regex = /(?<=^\d+\.\D*)\d+/gm;


console.log(string.match(regex));


查看完整回答
反对 回复 2023-06-15
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

像这样的东西


const source = 

`1. Last, First  123 Main St  buncha 

    buncha buncha


2. Lasta, Firsta 234 Lane St etc etc`;


const result = source.match(/(?<=(\d+\..+))\d+/gm);

console.log(result);


查看完整回答
反对 回复 2023-06-15
?
冉冉说

TA贡献1877条经验 获得超1个赞

您还可以使用捕获组

^\d+\.\D*(\d+)

解释

  • ^字符串的开始

  • \d+\.匹配 1+ 个数字和.

  • \D*匹配 0+ 除数字以外的任何字符

  • (\d+)捕获第 1 组,匹配 1+ 个数字

正则表达式演示

const regex = /^\d+\.\D*(\d+)/gm;

const str = `1. Last, First  123 Main St  buncha

    buncha buncha


2. Lasta, Firsta 234 Lane St etc etc`;


let res = Array.from(str.matchAll(regex), m => m[1]);

console.log(res);


查看完整回答
反对 回复 2023-06-15
  • 3 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信