$html=strip_tags($html);
$html=ereg_replace("[^A-Za-zäÄÜüÖö]"," ",$html);
$words = preg_split("/[\s,]+/", $html);
这不是用空格替换所有非(A-Z、a-z、a o u with umlauts)字符吗? 我正在用变音符号丢失 zugänglich 等单词
正则表达式有什么问题吗?
编辑:
我用 preg_replace 替换了 ereg_replace 但不知何故像 :, ® 这样的特殊字符没有被空格替换...
最佳答案
如果您的方法成功,首先取决于编码。当所有变音符号都被剥离时,您的源文本(或 php 脚本)可能被编码为 UTF-8。
在这种情况下使用:
$text = preg_replace('/[^\p{L}]/u', " ", $text);
这将匹配所有字母字符,而不仅仅是变音符号。 /u
解决了您可能遇到的字符集问题。
关于php - 如何在 php 中用空格替换所有非字母数字字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5550617/