Regex PHP , conditions


Regex PHP , conditions

我在一个项目中工作,包括排序地址。

我得到一个典型的地址,例如:25 Down Street 15000 London

在另一边,我得到了一个更具体的地址,例如25 **B** Down Street 15000 London

我找到了一种方法,只选择这个正则表达式的街道数量:'b([1-9][0-9]{0,2})

但是正如你所看到的,一些地址包含另一个字母,这是数字的一部分(如25a, 25b…)

所以现在我搜索正则表达式能够找到街道的数字,即使它包含的不仅仅是数字。

示例:如果地址是25 Down Street(我想找到25),如果地址是25 B Down Street(我想找到25 B)

继续找,也许你有办法帮我。

谢谢

如果字符串中第一个1-3位数字后面只有一个拉丁字母,则可以使用以下正则表达式:

'/^[1-9][0-9]{0,2}(?:'s*[A-Z])?'b/'

看到演示

单词边界'b将确保在第一个数字之后的拉丁字母之后没有单词字符,后面跟着可选的空白。如果缺少字母,'b仍然会确保数字后面跟着一个非单词字符,这似乎符合您的要求。

如果你只想假设第一个数字后面的下一个ALLCAPS单词属于该数字,使用:

'/^[1-9][0-9]{0,2}(?:'s*[A-Z]+)?'b/' 
                             ^