我有一个这样的数组,我想去掉所有的alpha字符。
$testString = Array ([0] => 46_xsdfdsa_ddasdasd [1] => 23423_wrwerwer_ajbfdahbfkahflagassl);
echo preg_replace("/[^0-9,.]/", "", $testString);
输出应为4623423。
我试过了,但没用。
提前感谢
这应该有效:
echo preg_replace("/[a-zA-Z0-9]/", "", $testString);
仅供参考,字母数字的意思是字母+数字字符。从你的问题标题来看,你似乎暗示你想把它们全部替换掉。让我们知道这是否适合你。
如果在输出中你只想要数字,.
,这就是你要做的:
echo preg_replace("/[^'d,.]/", "", $testString);
示例:
$str = '23,423_.wrwerwer_ajbfdahbfkahflagassl';
echo preg_replace("/[^'d]/", "", $str); // result: 23,423.
工作示例
这适用于我的
$testString = array(0 => '46_xsdfdsa_ddasdasd', 1 => '23423_wrwerwer_ajbfdahbfkahflagassl');
echo join(",",preg_replace("/[^0-9,.]/", "", $testString));
您所拥有的regexp是有效的——您只需要将结果连接起来。
$array = preg_replace("/[^0-9,.]/", "", $testString);
$string = implode(",", $array);
如果将数组传递给preg_replace
,它将返回数组而不是字符串,因此需要内爆数据以使其成为字符串
$testString = Array ( "0" => "46_xsdfdsa_ddasdasd" , "1" => "23423_wrwerwer_ajbfdahbfkahflagassl");
$result = preg_replace("/[^0-9,.]/", "", $testString);
print_r ($result);
它起作用了!!