正则表达式除了捕获组外还捕获所有内容

时间:2019-11-13 20:25:11

标签: javascript regex

我想出了一个JavaScript正则表达式,可以从地址字符串中捕获街道编号:

(\d+-\d+|\d+\/\d+|\d+\w{0,2})

现在我也想在其他捕获组中捕获字符串的其余部分(之前和之后)。
我将要测试的格式:

Streetname 23
Streetname 12-15
Streetname 12/15
Streetname 13c
Streetname 34 with additional text

1 个答案:

答案 0 :(得分:2)

您可以将此正则表达式与3个捕获的组一起使用:

/^(.*?)\b(\d+(?:[\/-]\d+|\w{0,2}))(.*)$/gm

RegEx Demo

RegEx详细信息:

  • ^:开始
  • (.*?):在第一个捕获组中的开头(非贪婪)匹配0个或更多字符
  • \b:单词边界
  • (\d+(?:[\/-]\d+|\w{0,2})):在第二个捕获组中匹配街道编号
  • (.*):第三个捕获组,以匹配剩余文本直到结尾
  • $:结束

标志

  • g:全局匹配;找到所有匹配项,而不是在第一个匹配项后停止
  • m:多行