查找第一组连续数字php正则表达式


Find first set consecutive numbers php regex

我对php和正则表达式都很陌生,很难找到解决方案。我不确定是不是因为我不知道谷歌的条款或什么,但这里是我的问题:

我正在尝试使用PHP preg_match来查找字符串中的第一组连续数字。我所说的连续数字是指任何字符串,其中它是不间断的数字。

前任。

"abc123abc"匹配:123"ghdfk 1 23abc"匹配:1"2475xyz"匹配:2475"abc 456 789"匹配:456

我一直在regular-expressions.info和谷歌上查找与我的问题主题类似的术语,但它们似乎都会返回搜索特定长度重复数字的人。

我正在尽我所能解析地址字符串,尽管它可能输入得很糟糕。

到目前为止,我尝试过的不起作用的东西都在我的代码中:

<?php
#$addr = '12-3 3rd street'; #1st Test
$addr = 'RR 3 Box 8411'; #2nd Test
#$addr = '480jacksonrd'; #3rd Test
#$addr = 'N2626prociousmayselrd'; #4th Test
#list($our['StreetNum'], $our['StreetName']) = explode(" ", $our['Address'], 2);
#preg_match('/.+(?=[^0-9])/s',$addr,$Matches);
#preg_match('/[0-9]*/',$addr,$Matches);
preg_match('/(?<='[^0-9]).+?(?=[^0-9])/s',$addr,$Matches);
$our['StreetNum'] = $Matches[0];
$our['StreetNum'] = preg_replace("/[^0-9]/", "", $our['StreetNum']);
echo ('First Match?: ' . $Matches[0] . '<br>'); #For Testing
echo ('Second Match?: ' . $Matches[1] . '<br>'); #For Testing
echo ('StrLen of StreetNum: ' . strlen($our['StreetNum']) . '<br>');
echo ('StrPos of StreetNum: ' . strpos($addr,$our['StreetNum']) . '<br>');
$our['StreetName'] = substr($addr, strlen($our['StreetNum'])+strpos($addr,$our['StreetNum']));
echo ('Street Original: ' . $addr . '<br>');
echo ('Street Number: ' . $our['StreetNum'] . '<br>');
echo ('Street Name: ' . $our['StreetName'] . '<br>');
?>

如有任何帮助或指示,我们将不胜感激。

/[0-9]+/作为preg_match应该足够了。您搜索任意一个或多个数字。

preg_match('/[0-9]+/', $addr, $Matches)

preg_match('/'d+/', $addr, $Matches)

你想得太多了。试试这个:

if preg_match('/'d+/', $my_string, $matches)
    return $matches[0];

您只需要搜索数字,然后返回匹配项。