假设我有一个字符串
$string1 = aed19209afg92019
$string2 = asd2919291029920192iig19202lm
$string3 = defcka090slalso01
$string4 = a1b2
$string5 = 2b
$string6 = dexter1
如何才能首次使用char来检索所有数字?
期望的输出:
19209
2919291029920192
090
1
2
1
这是我目前的代码:
$pattern = '/\w[0-9]\w/'
$hasMatch = preg_match($pattern, $details, $returnMatch);
if($hasMatch){
return $returnMatch[0];
}
不幸的是它返回了数字和字符串。
答案 0 :(得分:1)
如果您需要在PHP中找到与正则表达式匹配的第一个匹配项,则需要使用preg_match
。你需要的模式是
'~[a-z]\K\d+~i'
它将匹配一个ASCII字母([a-z]
,~i
使其不区分大小写),将其从匹配中删除(使用\K
),并将获得1+位数在它之后。请参阅regex demo。
请参阅PHP demo:
$strs = array("aed19209afg92019", "asd2919291029920192iig19202lm", "defcka090slalso01", "a1b2", "2b", "dexter1");
foreach ($strs as $s) {
if (preg_match('~[a-z]\K\d+~i', $s, $m))
{
echo $m[0] . "\n";
}
}