我想出了一个JavaScript正则表达式,可以从地址字符串中捕获街道编号:
(\d+-\d+|\d+\/\d+|\d+\w{0,2})
现在我也想在其他捕获组中捕获字符串的其余部分(之前和之后)。
我将要测试的格式:
Streetname 23
Streetname 12-15
Streetname 12/15
Streetname 13c
Streetname 34 with additional text
答案 0 :(得分:2)
您可以将此正则表达式与3个捕获的组一起使用:
/^(.*?)\b(\d+(?:[\/-]\d+|\w{0,2}))(.*)$/gm
RegEx详细信息:
^
:开始(.*?)
:在第一个捕获组中的开头(非贪婪)匹配0个或更多字符\b
:单词边界(\d+(?:[\/-]\d+|\w{0,2}))
:在第二个捕获组中匹配街道编号(.*)
:第三个捕获组,以匹配剩余文本直到结尾$
:结束标志
g
:全局匹配;找到所有匹配项,而不是在第一个匹配项后停止m
:多行