我在尋找正則表達式,它可以讓我找到句子中倒數第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
您不需要正則表達式 –