繁体   English   中英

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

[英]Regexp matching spaces in words

我正在寻找一个正则表达式,以替换整个输入字符串(包括开头和结尾)中写成“ word”,“ overf low”到“ word”和“ overflow”的单词。

我正在使用PHP和preg_replace。 并且需要在通过空格分割字符串并进一步过滤之前检测到这些单词。 该时间的任何组合均未得到应有的结果。

提前致谢!

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

之间是什么不同in cr e di bleit is a dog

为此,您需要设置规则,例如:

  • 单词之间以及单词部分之间可以有多少空格?
  • 一个单词可分为多长时间?
  • 字符串中的所有单词都分成几部分吗?

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

$ 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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM