我有4个匹配我的模式:
\d+\/?\d+\s[A-z]+.(?!\d)
需要解析4个字符串:
17 Howard Rd Howard. Stdnt
11/169 Wall Road, Wontown, Wkr
105 AGNEW, Marilyn Barbara
106 AGNEW, Mavis Rosina
如果我在.
后面加上*
或+
匹配到字符串的末尾。所以我失去了匹配和否定查找。我如何重新配置这个正则表达式来扩展匹配,以便我得到4个完整的字符串?
我有4个匹配我的模式:
\d+\/?\d+\s[A-z]+.(?!\d)
需要解析4个字符串:
17 Howard Rd Howard. Stdnt
11/169 Wall Road, Wontown, Wkr
105 AGNEW, Marilyn Barbara
106 AGNEW, Mavis Rosina
如果我在.
后面加上*
或+
匹配到字符串的末尾。所以我失去了匹配和否定查找。我如何重新配置这个正则表达式来扩展匹配,以便我得到4个完整的字符串?
1条答案
按热度按时间nukf8bse1#
您的模式至少匹配2位具有以下标记的数字
\d+\/?\d+
,请注意[A-z]
matches more than[A-Za-z]
这部分中的点
.(?!\d)
也匹配一个空格,这就是为什么你的匹配在结尾有一个空格或逗号。您可以用途:
(?<!\S)
向左声明空白边界\d+(?:/\d+)?
将1+位数与可选的/
和1+位数匹配\s[A-Za-z].*?
匹配一个空格字符,后跟一个字符A-Za-z,然后匹配尽可能少的字符(?=
正前瞻\s+\d+\b
匹配1+空格字符,1+数字|
或$
字符串结尾)
关闭前瞻Regex demo