2011-12-31 38 views
2

我想提取一個句子的最後兩個單詞並用其他單詞替換。讓我用一個例子說明:用正則表達式提取句子中的單詞

word1 word2 word3 word4 .... wordn-2 wordn-1 wordn 

我想是這樣,我得到一句這樣用正則表達式來代替這句話:

wordn-1 wordn : word1 word2 word3 word4 .... wordn-2 

我試圖

^(\w)* (\w)$ 

正則表達式的代碼替換爲

$2 : $1 

但是它不工作。預先感謝您的建議。

回答

1
^(.*)\s+(\w+\s+\w+)$ 

將與合作:

$2 : $1 

例如,在JavaScript:

"word1 word2 word3 word4".replace(/^(.*)\s+(\w+\s+\w+)$/, "$2 : $1"); 

回報:

"word3 word4 : word1 word2" 
+0

它的工作,謝謝 – harun 2011-12-31 15:51:49

0

嘗試:

^(.+)\b(\w+\s+\w+)$ 

你的正則表達式不匹配有以下幾個原因:

  • 你重複拍攝的組,而不是捕捉重複組:(\w)*將已捕獲的單詞的最後一個字符,你想寫(\w*),而不是;和(\w)將不匹配空格字符;
  • 更重要的是,您可以使用*量詞而不是+:您的第一個組可能已經空了 - *的意思是「零個或多個」;
  • 最後,你的第二組,(\w),只有匹配一個字符。
+0

我想更換除第一話最後兩個字與l兩個字。你的正則表達式不符合我的意圖。 – harun 2011-12-31 15:32:49

+0

糟糕...對不起,請參閱編輯 – fge 2011-12-31 15:39:36