使用正则表达式获取第一组数字

时间:2016-12-27 23:46:05

标签: php regex

我需要从街道地址中抓取第一组数字。地址可能以数字开头,也可能不是;并且可能还有其他数字。

对于以下两个例子,我想得到“123”作为结果:

123 E 9th St

E 123 9th St

我已经尝试了很多东西,但却无法得到它。感谢帮助。

[编辑]抱歉缺乏信息。这是我尝试过的:

$StreetNum = preg_replace( '/^(|\\s)([0-9]+)($|\\s)/', '', $StreetName );
$StreetNum = preg_replace( '/^([0-9]+)?/', '', $StreetName );
$StreetNum = preg_replace( '/^([0-9]+)?/', '', $StreetName );

2 个答案:

答案 0 :(得分:2)

试试这个

$string = "E 123 9th St";
$pattern = "/[0-9]+/";
if (preg_match($pattern, $string, $matches)) {
    var_dump($matches[0]);
 }

答案 1 :(得分:0)

好吧,您可以使用此正则表达式语法(\d){3}

preg_match("/(\d){3}/", "123 E 9th St",$m);
echo $m[0];

<强>输出: 123

它可以用来从

获得123

123 E 9th St

E 123 9th St

9th St E 123

任何数字组由3组成。我通过查看您的主题来编写它。如果你想要123或其他数字。但他们应该按3分组。这里我做了https://www.regex101.com/r/opuu2n/1

如果它没有给你答案,那就投票吧。我会删除它。