我有一个这样的数字列表:
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);
您也可以在regex中快速使用一行。
preg_match_all(":([0-9-]+):mi", $_POST["phone"], $match);
这里有一个例子
Edit:删除连字符遍历结果并用空字符串
替换连字符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);
}
更新示例
我将删除除数字和换行符以外的所有内容:
$cleaned = preg_replace("/[^0-9'n]/", "", $_POST['phone']);
然后explode
it:
$numbers = explode("'n", $cleaned);
保留所有数字,除了行分隔符以外的其他内容:
~(?!['d-]+).*~
PHP中用空字符串
替换每个匹配项的用法$numbers = preg_replace("~(?!['d-]+).*~", '', $phone);
结果:123-4-5679
546-5465-7
98-4564-64
我错过了什么吗?
$phone = explode(' ', $_POST['phone']);
$phone_number = $phone[0];
这个不行吗?