正则表达式'/ [^ 0-9] /'或'/ \ D /'或'/ \ d /'之间的区别是什么?使用单引号双引号会更好吗?
$number = '123asd456.789,123a4!"·$%&/()=/*-+<br>';
preg_replace('/\D/', '', $number) = 1234567891234
preg_replace('/\d/', '', $number) = asd.,a!"·$%&/()=/*-+
preg_replace('/[^0-9]+/', '', $number) = 1234567891234
当然我做了一些测试,这些都是我的结果,我只是想更多地说明每个正则表达式。哪个性能更好?
谢谢!
答案 0 :(得分:5)
答案 1 :(得分:1)
\d identical with [0-9] - digits in expression
\D identical with [^0-9] - NOT digits in expression
我使用单引号。
在你的例子中:
preg_replace('/\D/', '', $number) - 1234567891234
将用''
替换所有NON数字preg_replace('/\d/', '', $number) = asd.,a!"·$%&/()=/*-+
将用''
替换所有数字preg_replace('/[^0-9]+/', '', $number) = 1234567891234
将用''
替换所有NON数字