我有这段代码:
$string = "123456ABcd9999";
$answer = ereg("([0-9]*)", $string, $digits);
echo $digits[0];
输出'123456'。我想输出'1234569999'即。所有数字。我怎样才能做到这一点。我一直在尝试很多不同的正则表达式,但无法弄明白。
答案 0 :(得分:15)
首先,不要使用ereg(它已被弃用)。其次,为什么不替换它:
$answer = preg_replace('#\D#', '', $string);
请注意,\D
与\d
相反。因此\d
匹配所有十进制数字字符(0-9),因此\D
匹配\d
不匹配的任何内容...
答案 1 :(得分:7)
您可以使用preg_replace,例如preg_replace("/[^0-9]/", "", $string)
。