我试图删除PHP中除有效字母(来自任何语言)之外的所有内容.我一直在用这个:
$content=preg_replace('/[^\pL\p{Zs}]/u', '', $content);
Run Code Online (Sandbox Code Playgroud)
但它的速度很慢.比以下时间长约30倍:
$content=preg_replace('/[^a-z\s]/', '', $content);
Run Code Online (Sandbox Code Playgroud)
我正在处理大量数据,因此使用慢速方法实际上是不可行的.
有更快的方法吗?
嗯,这真是一个奇迹,它只慢了 30 倍,因为在a-z检查某个代码点是否是字母时,它需要花费大约 1000 倍的字符。
也就是说,您可以稍微改进您的正则表达式:
$content=preg_replace('/[^\pL\p{Zs}]+/u', '', $content);
Run Code Online (Sandbox Code Playgroud)
应通过将相邻的非字母/空格分隔符合并为一个替换操作来加快速度。
| 归档时间: |
|
| 查看次数: |
1212 次 |
| 最近记录: |