2013-04-05 28 views
1

之後替換我有一些鏈接模板,我需要替換那些鏈接中的子字符串。 鏈接模板:RegExp在

  1. 「/ all_news」
  2. 「/ all_news /」
  3. 「/ all_news /第1頁」
  4. 「/ all_news /第1頁/」

所有這些模板意味着同樣的事情 - 新聞頁面的第一頁沒有過濾。

所以我需要:

1日模板 - 插入 「/ pageX屬性」

第二模板 - 插入 「pageX屬性」

第三和第四模板 - 更換頁碼

是它只有一個正則表達式可能嗎?

如果是,那麼請幫助我。

如果否,那麼我有第二個問題: 也許它可能取代「/ all_news」後「/ pageX」上的所有內容?

我的意思是下一個邏輯:

  1. 字符串開始
  2. 好吧,我看到子串 「/ all_news」
  3. 我取代一切後 「/ all_news」 即使什麼都不存在(如果字符串以結束「/all_news「)
  4. 我返回」/ all_news/pageX「。

回答

2

這樣做。

'/all_news/page1'.replace(/(.*\/all_news).*/,'$1' + '/pageX'); 

只有一個人。

Java有向後看。它否定了1美元的需要。解決方案如下所示:

String result = "/all_news/page1"; 
String pattern = "(?<=\\/all_news).*"; 
System.out.println(result.replaceAll(pattern,"/PageX")); 

乾杯。

+1

你沒有說哪種語言......這是JavaScript。但是正則表達式/(((**/all_news).*/應該可以在任何地方使用(只有很小的改動)和$ 1構造。另外,所有主要語言都有類似的替換功能 – 2013-04-05 13:25:54

+0

awwwww ...大聲笑...我選擇了艱難的方式,但它比我想象的要容易 – FiftyStars 2013-04-05 13:32:04

+0

是的,我很高興你喜歡它:)如果它_really_作品...(因爲我永遠無法確定)你是否估計你可以找到時間來打勾答案? – 2013-04-05 13:33:09