Php 一个数字列表,同时除去除数字以外的所有内容
我有一个这样的数字列表:Php 一个数字列表,同时除去除数字以外的所有内容,php,preg-replace,explode,Php,Preg Replace,Explode,我有一个这样的数字列表: 123-4-5679 tha 546-5465-7 dsf 98-4564-64 ds8 我想在剥离除数字以外的所有内容的同时,将其分解为自身的价值。我在做,但它似乎保留了一切,但它确实给了我每行的价值 $pn = preg_replace("/\r/", "\n", preg_replace("/\r\n/", "\n", $_POST['phone'])); $phone_numbers = explode("\n", $pn); 好吧,我错过什么了吗 $pho
123-4-5679 tha
546-5465-7 dsf
98-4564-64 ds8
我想在剥离除数字以外的所有内容的同时,将其分解为自身的价值。我在做,但它似乎保留了一切,但它确实给了我每行的价值
$pn = preg_replace("/\r/", "\n", preg_replace("/\r\n/", "\n", $_POST['phone']));
$phone_numbers = explode("\n", $pn);
好吧,我错过什么了吗
$phone = explode(' ', $_POST['phone']);
$phone_number = $phone[0];
这不管用吗?除了数字和换行符之外,我会去掉所有的内容:
$cleaned = preg_replace("/[^0-9\n]/", "", $_POST['phone']);
然后分解它:
$numbers = explode("\n", $cleaned);
你也可以在正则表达式中用一行快捷键来完成
preg_match_all(":([0-9-]+):mi", $_POST["phone"], $match);
这是一个
编辑:要删除连字符,请遍历结果并用空字符串替换连字符
preg_match_all(":([0-9-]+):mi", $_POST["phone"], $matches);
// remove extra match array
$matches = array_shift($matches);
foreach( $matches as & $match )
{
$match = preg_replace(":-:", "", $match);
}
$numbers = preg_replace("~(?![\d-]+).*~", '', $phone);
更新的保留所有数字,匹配除行分隔符以外的所有内容:
~(?![\d-]+).*~
在PHP中使用空字符串替换每个匹配项
preg_match_all(":([0-9-]+):mi", $_POST["phone"], $matches);
// remove extra match array
$matches = array_shift($matches);
foreach( $matches as & $match )
{
$match = preg_replace(":-:", "", $match);
}
$numbers = preg_replace("~(?![\d-]+).*~", '', $phone);
结果:
123-4-5679
546-5465-7
98-4564-64
不,他想除去数字以外的所有东西。或者,
$numbers=preg\u match\u all(“:([\d-]+):”,$phone,$m)$m[0]:[]代码>我喜欢这一个,但我如何删除催眠以及?