匹配字符串和前后的5个字符

时间:2013-08-26 07:34:45

标签: regex

我需要匹配字符串onetwo以及之前和之后的5个字符

输入

中包含以下文字
  

Lorem Ipsum只是假打印和排版的一个文本   行业。 Lorem Ipsum一直是业界标准的虚拟文本   自16世纪以来,当一个未知的打印机采用了类型的厨房   争抢它制作一个类型标本两本书。它没有幸存下来   仅仅五个世纪,也是电子排版的飞跃,   基本保持不变。它在20世纪60年代随着推广而普及   释放包含Lorem Ipsum段落的Letraset表格,以及   最近使用像Aldus PageMaker这样的桌面出版软件   包括Lorem Ipsum的版本。

输出应为

  • ummy one text
  • imen two book

正则表达式应该与ruby中的scan方法一起使用

2 个答案:

答案 0 :(得分:7)

这个正则表达式应该有效:

.{5}(?:one|two).{5}

如果你想要字边界,那么:

.{5}\b(?:one|two)\b.{5}

现场演示(Ruby):http://www.rubular.com/r/AcDOFxMx31

答案 1 :(得分:0)

不知道ruby语法,但一般情况下,以下内容应该有效:

 .....(one|two).....

在某些语言中,你可以做类似的事情

   .{5}(one|two).{5} 

但这不像前一行那样得到确认

为了输出整个选择,您需要在所有选择周围使用大括号并选择第二个结果(正则表达式将第一个查找设置为一个\ 2,第二个作为查找)例如

 (.....(one|two)....)

$ 1 =“一” $ 2 =“bla one bla”

编辑1 =示例 编辑2 =拼写错误