正则表达式在文本匹配后查找数字组

2024-06-06 18:44:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试了许多正则表达式,但无法获得所需的输出。 我的弦是

Ms.Evalyn J Hobbs AND Mr.Jan K Hir sch AND Ms.Gale D Bannister 3611

我需要提取先生或夫人后面的数字组,即3611


Tags: and数字janmsmrgale夫人sch
2条回答

另一种在女士、女士先生(或小姐)之后捕获群中数字的方法是:

^{}

那会匹配的

  • 单词边界\b以确保它不是较大匹配的一部分,然后是M
  • 一种替换(?:rs?|s|iss)\.,它将匹配一个变体,后跟一个点。你知道吗
  • 使用否定的character class[^\d]+不匹配数字
  • 最后捕获捕获组中的一个或多个数字(\d+)

const regex = /\bM(?:rs?|s|iss)\.[^\d]+(\d+)/g; const str = "Ms.Evalyn 33 J Hobbs AND Mr.Jan K Hir 55 years Mr. sch AND Ms.Gale D Bannister 3611"; while ((m = regex.exec(str)) !== null) { if (m.index === regex.lastIndex) { regex.lastIndex++; } console.log(m[1]); }

尝试Regex:(?:Ms|Mr|Mrs).*?(\d+)并获取group1值

Demo

相关问题 更多 >