如何编写正则表达式以从文本中删除已编码和未编码的单词。
例如,我们假设以下内容:
$string1 = 'do not enter your username';
//The encoded string below is: 'or password';
$string2 = 'or password';
$string = $string1 . $string2;
正则表达式应删除未编码的单词“username”和编码后的单词“或password”,编码后如下所示:
or password
我编写了以下正则表达式,它适用于未编码的单词,但在编码时失败。
$words_to_remove = 'username|or password';
preg_replace("/\b($words_to_remove)\b/u", ' ', $string);
答案 0 :(得分:1)
更确切地说,此'or password'
是 数字HTML编码 ,应以更复杂的方式进行解码。
此外,编码字符串or <---
中有一个拼写错误:r
是r
字符的等价物,每个字符都是&#34;序列&#34;应以分号;
结尾。使用html_entity_decode
函数的最终解决方案应如下所示:
$string1 = 'do not enter your username ';
$string2 = 'or password';
$string = html_entity_decode($string1 . $string2);
$words_to_remove = 'username|password';
$string = preg_replace("/($words_to_remove)/u", ' ', $string);
print_r($string);
输出:
do not enter your or