2013-04-05 70 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