我使用 Trie 数据结构实现了一个亵渎过滤器。每个脏话都被添加到 Trie 中。当我有一个字符串可以删除脏话时,我会使用标点符号来分解字符串,并使用 Trie 检查每个单词。如果发现我用星号替换。然后我内爆字符串问题是,我如何跟踪标点符号?换句话说,我如何确保生成的字符串有标点符号?
问问题
798 次
1 回答
3
如果您preg_split()
用于拆分字符串,请考虑使用PREG_SPLIT_DELIM_CAPTURE
标志来捕获匹配的标点符号。
考虑:
$str = "This. string/ has? punctuation!";
print_r(preg_split('/(\W+)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE));
/*
Array
(
[0] => This
[1] => .
[2] => string
[3] => /
[4] => has
[5] => ?
[6] => punctuation
[7] => !
[8] =>
)
*/
有关详细信息,请参阅http://php.net/preg_split。
于 2011-05-26T18:55:36.880 回答