我对php和正则表达式都相当陌生,并且找不到解决方案。我不确定是否可以,因为我不知道Google的术语或什么,但这是我的问题:
我正在尝试使用PHP preg_match查找字符串中的第一组连续数字。我所说的连续数字是任何不间断数字的字符串。
前任。
'abc123abc'比赛:123'ghdfk 1 23abc'比赛:1'2475xyz'比赛:2475'abc 456 789'比赛:456
我一直在通过regular-expressions.info和google寻找类似于我的问题主题的术语,但是它们似乎都返回了寻找重复特定长度数字的用户的搜索。
我试图尽我所能来解析地址字符串,即使可能输入的内容很糟。
我到目前为止尝试过的不起作用的事情在我的代码中:
<?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>');
?>
任何帮助或指示,将不胜感激。
你太想了。试试这个:
if preg_match('/\d+/', $my_string, $matches)
return $matches[0];
您只需要搜索数字,然后返回匹配项即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句