【发布时间】:2018-06-12 02:03:10
【问题描述】:
我正在编写一个脚本,该脚本将从短信中识别出令人反感的词语。问题在于,有时用户会对单词进行一些更改,使其无法识别。我的代码也必须能够尽可能地识别那些。
首先,我将所有非 alnum 字符替换为空格。
然后: 我写了两个正则表达式模式。 一种从字符串中删除重复字符。 例如:用户写了:seeeeex,它用sex替换它:
preg_replace('/(.)\1+/', '$1', $text)
这个正则表达式适用于英语单词,但不适用于波斯语单词,这是我的情况。 例如,如果你写: امیییییییییین 它与它无关。 我也试过了
mb_ereg_replace
但它也不起作用。
我的另一个正则表达式是删除所有单字母单词周围的空格。 例如:我希望它把 S E X 转换为性:
preg_replace('/( [a-zA-Zآ-ی] )\1+/', trim('$1'), $text);
这个正则表达式根本不起作用,需要更正。
感谢您的帮助
【问题讨论】:
-
我怀疑应该是
preg_repalce而不是str_replace。 -
@revo 对,问这个问题是个错误,在我的代码中我使用的是 preg
-
尝试使用Unicode标志
u=>/(.)\1+/u