2011-05-26 24 views
0

通過使用Trie數據結構來實現褻瀆濾鏡。每個發誓的單詞都被添加到Trie。當我有一個字符串來消除褻瀆,我用標點符號爆炸字符串,並檢查與Trie的每一個字。如果發現我用星號替換。然後我爆裂字符串問題是,我如何跟蹤標點符號?換句話說,我如何確保生成的字符串具有標點符號?字符串已使用標點符號作爲分隔符分隔;如何重新組裝並將標點重新放入?

+0

我懷疑你需要標點這些單詞;) – Blender 2011-05-26 18:47:50

+0

難道你不能使用一些其他的字符,而不是標點符號嗎? – BlueEel 2011-05-26 18:50:05

回答

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

相關問題