php - 使用 PHP 删除除 alt 代码之外的特殊字符
问题描述
我正在删除字符串中的特殊字符,但是当我尝试运行代码时,它会删除最后一个数字,例如从hello113到hello11 等。然后我发现这些数字在alt 代码中用于特殊字符。
这就是我想要做的
$var = "hello113 guys115 this is for test&ing101!";
preg_match_all('/([a-zA-Z])+\w{2}/i', preg_replace('/[^A-Za-z0-9\-\']/', '', $var), $var_data);
echo strtolower(implode(" ", $var_data[0]));
然后结果是这样的
hello11 guys11 this for test ing10
我期待这样的结果:
hello113 guys115 this is for testing101
解决方案
只需删除所有非空格和非单词字符。
$var = "hello113 guys115 this is for test&ing101!";
echo preg_replace('/[^\w\s]|_/', '', $var);
结果:
你好 113 伙计们 115 这是用于测试的 101
这|_
是因为\w
允许下划线。
u
如果还允许使用 unicode 单词字符,您可以在结束分隔符之后添加修饰符。
preg_replace('/[^\w\s]|_/u', '', $var)
推荐阅读
- reactjs - React - how to render multiple buttons with a regular for loop?
- c++ - 为什么在 c++ 中使用 ios::sync_with_stdio(false) 之后在 cout 之前执行 printf?
- javascript - 如何在跨度标签上触发/显示弹出框?
- java - FragmentTransaction.replace() 崩溃 - 但仅在发布版本中
- git - 如何在 TeamCity 内部的构建中管理多个存储库?
- apriori - 是否有用于在给定 RHS 的规则中查找大多数频率项 (LHS) 的 R 函数?
- android - 清单合并失败并出现多个错误,如何解决此错误?
- flutter - 如何将 List 的每个项目与 ListView builder 的每个项目进行比较?
- google-apps-script - 脚本应用 URL 与 Web 应用 URL 不同
- facebook - 无需设置企业帐户和等待评论即可访问我的 IG 媒体