`
baobaocc
  • 浏览: 4269 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java正则表达式,贪婪or懒汉,or独占

    博客分类:
  • java
阅读更多
  用怎么样的java正则写出像javaeye优秀的“引用”标签匹配方式?

  比如
 
ck 写道
ck1 写道
ck.yang 写道
ck中国
ck2 写道
ck3 写道
ck.yang 写道
ck-ware 写道
ck4 写道
ck5 写道
ck-6 写道
ck中国
ck?
牛逼了!
牛逼了牛逼了
牛逼了牛逼了牛逼了~

牛逼了牛逼了牛逼了牛逼了~

牛逼了牛逼了牛逼了牛逼了牛逼了

什么意思,牛逼了?

牛逼了!

很好,祖国很强大,党很团结。剩下的事情就是牛逼了

我就是想说ck阿。。都解释过了~~
自己不看~

写不出,烦~




速度来人解析

欢迎各位来探讨,请注意还有下面的引用哦



ck 写道
ck1 写道
ck1 写道

ck1 写道
ck1 写道
ck1 写道

速度来人解析

欢迎各位来探讨,请注意还有下面的引用哦


多人引用腰不疼!
腰不疼
背不酸
爽!写出你们的想法吧
1
2
分享到:
评论
1 楼 baobaocc 2010-07-02  
本人一个猜想是
public class QuoteTest {
	private static final String quote="(\\[quote=(.*)\\])(.*?)(\\[\\/quote\\])";
	private static final String quote_div_title = "<div class=\"quote_title\">";
	private static final String quote_div = "<div class=\"quote_div\">";
	private static final String quote_div_last = "</div>";

	private boolean haveQuote(String content) {
			Matcher matcher = Pattern.compile(quote).matcher(content);
			while (matcher.find()) {
				return true;
			}
			return false;
		}

	private String InnerQuoteCoverter(String str) throws Exception{
			Pattern pattern = Pattern.compile(quote,2);
			Matcher matcher = pattern.matcher(str);
			StringBuffer stringbuffer = new StringBuffer();

			for (boolean flag = matcher.find(); flag; flag = matcher.find()) {
				matcher.appendReplacement(stringbuffer,quote_div_title
						+ matcher.group(1) + quote_div_last +quote_div+ InnerQuoteCoverter(matcher.group(2))
						+quote_div_last);
			}

			matcher.appendTail(stringbuffer);
			return stringbuffer.toString();
	}

	public static void main(String args[]) throws Exception{
		String str="[quote=ck][quote=ck1][quote=ck1]"
                   +"[quote=ck1][quote=ck1][quote=ck1]"
                   +"速度来人解析欢迎各位来探讨,请注意还有下面的引用哦"
                   +"多人引用腰不疼!腰不疼背不酸爽!写出你们的想法吧";
		
		QuoteTest q=new QuoteTest();
		System.out.println(q.InnerQuoteCoverter(str));
	}
}



出来结果让人腰疼背痛,水平不佳,有人能否引爆呢!

相关推荐

Global site tag (gtag.js) - Google Analytics