php - preg_replace '/[^0-9]/' 或 '/\D/' 或 '/\d/' 之间的区别?

标签 php preg-replace

正则表达式 '/[^0-9]/' '/\D/' /5/6\d919 '5/7920 之间有什么区别?使用单引号或双引号更好吗?

$number = '123asd456.789,123a4!"·$%&/()=/*-+<br>';

preg_replace('/\D/', '', $number) = 1234567891234
preg_replace('/\d/', '', $number) = asd.,a!"·$%&/()=/*-+
preg_replace('/[^0-9]+/', '', $number) = 1234567891234

当然,我做了一些测试,这些就是我的结果,我只是想对每个正则表达式多了解一点。哪个性能更好?

谢谢!!

最佳答案

\D 意味着任何东西,除了数字。它是 [^0-9] 的别名.
\d 表示任何数字。它是 [0-9] 的别名(没有 ^ )。
"没有区别和 ' ,因为您没有使用内部 "'并且此字符串中没有类似 PHP 的变量。

关于php - preg_replace '/[^0-9]/' 或 '/\D/' 或 '/\d/' 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26406756/

相关文章:

java - 使用自签名证书生成签名

php - 使用臭名昭著的 CActiveRecord 在 Yii 框架中一次查找多个记录?

php - 替换某些字符同时允许 unicode (PHP)

php - 使用正则表达式从内容中删除 HTML 注释

php - 如何删除字符串中的所有非大写字符?

php - 具有十六进制值的正则表达式使 preg_replace 在 php 5.4 中返回 null

php - 为什么我的 Controller 在 Symfony 中请求 frontend_dev.php?

php - 使当天的访客计数等于 0,这在 MySQL 数据库中不存在

c# - 我可以将 PHP 关联数组传递给 ComVisible .NET 函数吗?

php - 如何制作 seo 友好的 url