正则表达式匹配单词中的空格

时间:2012-11-23 10:14:02

标签: php regex

我正在寻找一个正则表达式来替换像“w o r d”这样的单词, “o v e r f low”分别为“word”和“overflow”,遍及输入字符串(包括开头和结尾)。

我正在使用PHP& preg_replace函数。并且需要在按空格分割字符串并进一步过滤之前检测这些字。当时的任何组合都没有给出应有的结果。

提前致谢!

2 个答案:

答案 0 :(得分:0)

这个很难,因为:这是一个什么词?什么是一个词的一部分?

in cr e di bleit is a dog之间有何不同?

要使用正则表达式,您需要设置规则,例如:

  • 单词之间和单词部分之间可以有多少个空格?
  • 一个单词可以划分多长时间?
  • 字符串中的所有单词是否分成几部分?

如果您无法确定这些规则,那么您就无法编写可以解决问题的正则表达式。将单词与字典进行比较以确定它们是否有效应证明更有用。

答案 1 :(得分:0)

$ string = "w o r d", "o v e r f low"
$ echo 'word w o r d' | sed '/\([^ ][^ ]\)[ ]/s::\1\n:g ' | sed '/[ ]\([^ ][^ ]\)/s::\n\1:g' | sed ':r /\([^ ]\)[ ]/s::\1: ; tr' | sed 'H; ${x;/\n/s:: :g;sc[ ]cc;p};d'