这是我的RegEx模式:\b\d+\w{0,2}\s\w+(\s\w+)?\b
我正在尝试捕获以下测试地址中的街道号码,街道名称和街道类型:
N1 2XQ, Flat 2, 325 Upper Street, London
SE15 1TX, 1 Penarth Street, London
KT9 2EY, 158 Bridge Road, Chessington, Surrey
NW10 4HP, 32AB Springwell Avenue, London
SW6 4DP, 16 St Maur Road, London
SW6 6NZ, Flat 19 Elm Lodge, 75 Stevenage Road, London
KT11 2BT, 11 Fairbourne, Cobham, Surrey
SW6 4BS, 24 Crondace Road, London
KT12 3LJ, 3b Ambleside Avenue, Walton on Thames
SW9 0NR, 66 Cranworth Gardens, London
FLat 5, 12 Ellerker Gardens
SW17 7JN, Flat F23, Du Cane Court, Balham High Road, Balham, London
1 Aragon Close, Enfield, Middlesex, EN2 8WL
SW16 4JF, 34 Norbury Rise, London
问题:它也匹配某些邮政编码。我不明白为什么,因为我指定我的RegEx模式以数字开头。我还希望能够捕获以下地址中的破折号和单位号码:
121-135 Green Lanes
答案 0 :(得分:0)
如评论部分所述。输入格式错误,因此我们需要捕获的内容有点不清楚。如果文件被逗号正确地吐出,则下面的正则表达式只需要捕获逗号内的内容 - 不包括逗号。
/(?<=\,).+?(?=,)/
在此测试:rublar.com
编辑:尝试过这样,但你无法涵盖所有变化。
\s+\d[0-9]+(?:\w+)?\s+\w+\s((:?\w+)?){0,2}(?=\,)