当前页面: 开发资料首页 → 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;