字符串已使用标点符号作为分隔符进行了拆分;如何重新组装并重新插入标点符号?

问题描述

| 我通过使用Trie数据结构实现亵渎性过滤器。每个发誓的词都会添加到Trie中。当我有一个删除亵渎的字符串时,我会使用标点符号将字符串炸开,并使用Trie检查每个单词。如果找到,我将替换为星号。然后将字符串爆破问题是,如何跟踪标点符号?换句话说,我如何确保结果字符串具有标点符号?     

解决方法

如果您使用ѭ0split分割字符串,请考虑使用
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。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...