我正在尝试使用正则表达式匹配地址标识符并提取跨度,但前提是它们链接到另一个地址标识符
flats 1, 2, 3 and 4, clover court, 10 windsor gardens wxy zq9
flats 1 and 2, 3 and 4, clover court
apartments 1 and 2, 3, 4, 5, 6, clover court
1, 2, 3, and 4, clover court
在上面的地址中,我只想匹配公寓/公寓号码,前提是它们前面有公寓/公寓。此正则表达式应捕获前三个句子中的所有平面数字,而不捕获最后一个句子中的任何数字。但他的正则表达式不能捕获街道号码或邮政编码。这意味着正则表达式必须在公寓编号的末尾停止,并且不包括公寓所在的建筑物(例如“三叶草法院”)。
我想单独捕获每个平面编号而不是整个块。因此,捕获“1、2、3 和 4”的正则表达式不起作用,因为整个跨度代表的不仅仅是一个平面 ID。
我努力了
(flats|apartments) (\d+(, | and ))*(\d)
但这实际上只能用于捕获系列中的最后一个数字,因为它在捕获组 4 中。
在量化组周围放置一个捕获组。
(flats|apartments) ((?:\d+(?:, | and ))*(?:\d))
捕获组 1 将包含flats
或apartments
,捕获组 2 将包含所有公寓号码的列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句