Javascript 除了捕获组,Regex还捕获所有内容

Javascript 除了捕获组,Regex还捕获所有内容,javascript,regex,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 您可以将此正则表达式用于3个捕获的组: /^(.*?)\b(\d+(?:[\/-]

我提出了一个javascript正则表达式,它从地址字符串中捕获街道号码:

(\d+-\d+|\d+\/\d+|\d+\w{0,2})
现在,我还想在其他捕获组中捕获字符串的其余部分(之前和之后)。
我将测试的格式:

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

您可以将此正则表达式用于3个捕获的组:

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

正则表达式详细信息:

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

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

您可以使用:
/^(.*)\b(\d+(?:[\/-]\d+\w{0,2}))(.*)$/
您还可以用空字符串替换街道号码,然后继续其他捕获组