Php 从前面或后面有字符的文本中获取数字的第一个匹配项
假设我有一根绳子Php 从前面或后面有字符的文本中获取数字的第一个匹配项,php,regex,preg-match,Php,Regex,Preg Match,假设我有一根绳子 $string1 = aed19209afg92019 $string2 = asd2919291029920192iig19202lm $string3 = defcka090slalso01 $string4 = a1b2 $string5 = 2b $string6 = dexter1 我怎样才能检索第一次出现的字符的所有数字 期望输出: 19209 2919291029920192 090 1 2 1 这是我目前的代码: $pattern = '/\w[0-9]\w
$string1 = aed19209afg92019
$string2 = asd2919291029920192iig19202lm
$string3 = defcka090slalso01
$string4 = a1b2
$string5 = 2b
$string6 = dexter1
我怎样才能检索第一次出现的字符的所有数字
期望输出:
19209
2919291029920192
090
1
2
1
这是我目前的代码:
$pattern = '/\w[0-9]\w/'
$hasMatch = preg_match($pattern, $details, $returnMatch);
if($hasMatch){
return $returnMatch[0];
}
不幸的是,它同时返回数字和字符串。如果需要在PHP中找到与正则表达式的第一个匹配项,则需要使用
preg\u match
。你需要的模式是
'~[a-z]\K\d+~i'
它将匹配一个ASCII字母(使用[a-z]
,~i
使其不区分大小写),将其从匹配项中删除(使用\K
),并将在其后面抓取1+个数字。看
见:
请阅读并了解如何创建一个SO不是免费的编码或代码转换或调试或教程或库查找服务。我们尝试修复您的代码,我们不编写您的代码。您的代码在哪里?请查看regex。在这个网站上有很多关于它的问题。我知道有很多正则表达式问题,但我只需要得到第一个出现的
echo preg_替换(“/[^0-9,.]/”,“,”asd2919291029920192iig192lm”)代码>或echo preg_替换(“/[^0-9,.]/”,“,$mString”)代码>谢谢你的解释。也许我需要看看RegexBTW的备忘单,你也可以在这里使用lookback-“~(?
$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";
}
}