我想出了一个 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
:多行
关于javascript - 正则表达式还捕获除捕获组之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58845074/