【问题标题】:preg_replace to strip out punctuation, white spaces and possessive forms of words?preg_replace 去除标点符号、空格和所有格形式的单词?
【发布时间】:2010-11-06 11:02:52
【问题描述】:
$text =
"<tab><return><nbsp>O'Neil  really  
likes his pudding's, he really really does!!!1.5"

如果可能的话,我希望有这个'&lt;tab&gt;' 是一个实际的标签\t 空间而不是字面上的'&lt;tab&gt;'

$text = "O'Neil really likes his pudding he really really does 1.5"

删除白色步调,并用一个空格、标点符号替换它们,保留撇号后的数字或任何不是“s”的东西。

非常感谢!

【问题讨论】:

  • O'Neil really likes his auntie's pudding, he really really does! 呢?
  • 为什么1.5 保留它的点?
  • @Pekka,我正在尝试制作单词和数字的索引
  • 啊,我明白了!那么它就更有意义了。虽然如果输入不正确它会中断 - 很多人倾向于写his aunties puddings....
  • @Tim,因为它是小数点而不是句点。

标签: php regex preg-replace whitespace string-formatting


【解决方案1】:
$string = trim(preg_replace(array('~[:;!?]|[.,](?![0-9])|\'s~', '~\s+~'), array('', ' '), $string));

首先去掉's,然后用一个空格替换多个空格。最终它会删除前导和尾随空格。

【讨论】:

  • 我猜这并没有真正删除逗号或标点符号,但谢谢!
  • 糟糕,忘记了那部分。现在正则表达式应该删除一些标点符号和.,,如果它们后面没有数字的话。
猜你喜欢
  • 1970-01-01
  • 2021-12-20
  • 2019-05-09
  • 2019-08-25
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 2016-06-07
  • 2020-12-17
相关资源
最近更新 更多