我在寻找正则表达式,它可以让我找到句子中倒数第n个单词。 我有字符串:正则表达式 - 从第n个单词到最后一个
Lorem Ipsum is simply dummy text of the printing
我想获得
simply dummy text of the printing
如何正则表达式应该是什么样子?
谢谢。
我在寻找正则表达式,它可以让我找到句子中倒数第n个单词。 我有字符串:正则表达式 - 从第n个单词到最后一个
Lorem Ipsum is simply dummy text of the printing
我想获得
simply dummy text of the printing
如何正则表达式应该是什么样子?
谢谢。
为什么你会在这里使用regexp?
n = 3
s = 'Lorem Ipsum is simply dummy text of the printing'
p s.split[n..-1] #=> ["simply", "dummy", "text", "of", "the", "printing"]
p s.split[n..-1].join(' ') #=> "simply dummy text of the printing"
重新阅读这个问题后(和upvoting你的答案后:-))我很确定OP想要一个字符串(不是数组)返回。我这样说是因为“印刷品的虚拟文本”与给定的字符串格式相同,并且还根据OP对@Peter的答案的评论。您可以在'.join'上添加粘性,但这可能会改变单词之间的间距。 –
@CarySwoveland感谢您的评论,我认为使用'.join'返回一个字符串是很明显的,假设这是一个正确的“句子”,如问题中所述 –
我假设给定的字符串不包含标点符号(逗号,分号,冒号,句号,问号等),你想返回一个字符串(排除的前两个单词和空格以下第二个字)。
在构造正则表达式时,必须考虑到某些词汇是收缩或被连字符的事实。
r =/
\A # match start of string
(?: # begin a non-capture group
[a-z'-]+ # match >= characters in character class
\s+ # match > 0 characters
){2} # end non-capture group and match it twice
/xi
"It's tea-time at the Ritz".gsub(r, '')
#=> "at the Ritz"
您正在使用哪种编程语言? –
我正在使用Ruby。 – Przemek903
您不需要正则表达式 –