站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题我这样写正则有问题吗?

我这样写正则有问题吗?

摘要: 我这样写正则有问题吗?


这是一个wiki语法过滤器,用“*”号表示html语法中的-#60;ul-#62;-#60;li-#62;-#60;/li-#62;-#60;/ul-#62;,“*”号越多则层次越深,如:

*AAA
*BBB
**BBB1
**BBB2
***BBB21
***BBB22
*CCC

其解析后的html显示结果为:
AAA
BBB
BBB1
BBB2
BBB21
BBB22
CCC

该list块的起始到结束是有限制的:
起始点必须有一个换行符加若干个“*”;
结束点必须有空行,即两个换行符;

在寻找list块的过程中我遇到了麻烦,我在程序中的test codes:
//test string
String test = -#34;列表起点/n/r*AAA/n/r*BBB/n/r***BBB4/n/r/n/r列表结束-#34;;
//正则表达式,找这个list块
public static String LI_REGEX = -#34;(//n//r//*)([^//n//r//n//r]*)(//n//r//n//r)-#34;;

本来期望的match result是:/n/r*AAA/n/r*BBB/n/r***BBB4/n/r/n/r
但实际匹配的却是:***BBB4/n/r/n/r

我错在哪里?


对正则不懂 帮你顶一下吧 呵呵 希望楼下能帮你


剪掉楼主小鸡几??!!!


为什么要这样写,这样特别容易出问题!


为什么要这样写,这样特别容易出问题!

那该如何写才能不出问题,写在独立的磁盘文件中?


帮你顶一下吧


没看明白BBB4从哪出来


-#34;(//n//r//*)([.//n//r]*)(//n//r//n//r)-#34;


Wikipedia or just wiki the tech?

曾经写过一个给页面中日期(世纪,年代,年,年月,月,月日,年月日)加[[]]的robot,有兴趣可以一起探讨下。

你的代码还没仔细看,可能出在Pattern.compile的时候,第二个参数未指定可以跨行


试了一下,不好意思刚才写的不行,不知道为什么[.//n//r]不能代表全部字符,.文档上写的是除了换行符所有的字符啊,一直不知道为什么

可以试一下
-#34;(//n//r//*)([^-#62;]*)(//n//r//n//r)-#34;

刚才试了,好使


to:shine333(enihs)

我正在写的就是wikipedia格式转换程序,用于移植wikipedia数据,robot我了解过,看来我们的共同语言还是蛮多的,多交流!


to:dreamover(梦醒了〖http://hellfire.cn〗)

我也是逐个检查语法,找不出问题啊,这几天写了十几个有关正则的程序,就这个给卡这儿了


to:dreamover(梦醒了〖http://hellfire.cn〗)

-#34;(//n//r//*)([^-#62;]*)(//n//r//n//r)-#34;
这个正则虽然测试通过,但并不符合程序目标,因为([^-#62;]*)并不能匹配所有非(//n//r//n//r)的字符串阿,如果中间有一个-#62;符号,就会匹配错误!

thanks anyway!



我顶//


经过测试-#34;((//n//r)*//**//w+)+(//n//r)+-#34;匹配/n/r*AAA/n/r*BBB/n/r***BBB4/n/r/n/r


找到.怎么代表全部字符了,如下所示


-#34;(?s)(//n//r//*)(.*)(//n//r//n//r)-#34;


↑返回目录
前一篇: SOS~!(在线等待)
后一篇: 一段代码目的是打印2点成一条直线,出了点问题