论坛首页 Java企业应用论坛

java正则表达式

浏览 6414 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (6)
作者 正文
   发表时间:2010-07-02  
  用怎么样的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 写道

速度来人解析

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


多人引用腰不疼!
腰不疼
背不酸
爽!写出你们的想法吧
   发表时间: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));
}
}
但是结果却是让人腰疼!
0 请登录后投票
   发表时间:2010-07-03  
汗。用DIV你好歹也在web环境下呀。
0 请登录后投票
   发表时间:2010-07-03   最后修改:2010-07-03
想了想,此类问题似乎跟web环境无关吧,只要能解释出来就是了吧,div这么显现出来以我提问无关。我想法是想用一个懒汉式来循环,在用贪婪来解释
0 请登录后投票
   发表时间:2010-07-03  
这个和正则有关系么?用个栈不就解决了?
0 请登录后投票
   发表时间:2010-07-04  
baobaocc 写道
一个猜想就是
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));
}
}
但是结果却是让人腰疼!

正解,支持...
1 请登录后投票
   发表时间:2010-07-05  
看了腰疼;
这个好像不是使用正则的吧;
div引用后使用dom的createDom再嵌进去不能解决吗~~
0 请登录后投票
   发表时间:2010-07-05  
这个引用格式感觉好乱啊,不晓得谁回复的什么!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics