php - 如何在 php 中用空格替换所有非字母数字字符?

标签 php regex nlp

$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/

相关文章:

php - 无法使用 StackExchanges 的 PageDown 将 markdown 转换为 HTML

javascript - 在 HTML 中显示 PHP var(使用 jQuery)

php - GPL许可证是否污染?

正则表达式:选择不等于某个字符串的所有内容

python - 将术语添加到 python 模式单数化的好方法

php - 使用 php 将复选框值存储在数据库的不同列中(在循环中)

java - 如何拒绝Java正则表达式中的字符重复

字符串操作 KNIME 中的正则表达式替换

python - 如何从另一种语言单词创建英文字母字符串?

nlp - OpenNLP:无法识别外国名称