如何在一个单词之后切断字符串中的所有内容?

时间:2016-06-08 17:10:54

标签: ruby regex

所以我知道在" theword"之前切断字符串中的所有内容。你会这样做的。

  .gsub!(/.*?(?=theword)/im, "")

我不确定怎么做是在" theword"之后删除字符串中的所有内容。我想知道你是否可以帮我制作那个正则表达式。它应该是对上述正则表达式的一些修改,但我还没有想到它。谢谢!

3 个答案:

答案 0 :(得分:1)

我看到"切割"你的意思是将一个字符串分成两部分。您可以通过将 limit 参数传递给2:

来使用split
s.split(/theword/i, 2)

请参阅IDEONE demo

如果由于某种原因,您需要使用删除代码,我建议使用sub(因为将有一个搜索和替换操作):

  • 删除后的所有内容包含一词:.sub!(/theword.*/mi, "")demo
  • 排除一词后删除所有内容:.sub!(/(theword).*/mi, "\\1")demo

答案 1 :(得分:0)

以下是你在

之后捕捉所有内容的方法

基本上我们找到了模式,我们拒绝使用?:非捕获修饰符捕获它,但我们捕获它后面的所有内容。

/(?:.*?theword)(.*)/gm

https://regex101.com/r/eF4oC7/1

答案 2 :(得分:0)

要在“theword”之前删除所有内容,您使用了正向前瞻。同样,要在“theword”之后删除所有内容,您可以使用正向后视

.gsub!(/(?<=theword).*?/im, "")