100分求一有关正则表达式程序~~~~

magic256 2008-07-25 07:16:00
从一篇文章中(String s1)截取一部分字符串(String s2),这篇文章中带有HTML标记。现在想实现个功能就是截取后可以检查标记,如果发现标记不对,比如截取出<XXX而没有大于号,或者截取出<XXX>没有关闭元素,那么他会去检查s1,并且重新截取出最靠近原先位置的,又能让HTML标记合法的字符串。

若有哪位达人可以帮助提供一段代码解决此问题,小弟我谢谢了先
...全文
279 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
magic256 2008-08-01
  • 打赏
  • 举报
回复
这里用了个前向引用(back reference),可以理解为一个递归检查吧。。。
magic256 2008-08-01
  • 打赏
  • 举报
回复
其实我也是火龙果的fans,嘿嘿~··
magic256 2008-08-01
  • 打赏
  • 举报
回复
后来我做出来了。。。发了帖自己忘了看了。。。在这里帖出来供大家分享呵呵,那就散分了~~~~谢谢大家帮顶

public class Test {
public static void main(String[] args) {

String str = "<strong><font><fff></fff></font></strong>";
String s1="aa";
if((s1.contains("<") && !s1.contains(">"))) {
int fromIndex = 0;
s1.indexOf("", fromIndex);
}
Pattern p = Pattern.compile("<.+>.*(<.+>.*\\1*.*</.+>)*.*</.+>");
Matcher m = p.matcher(str);
System.out.println(m.matches());
}
}

jishu_vip 2008-07-31
  • 打赏
  • 举报
回复
mark

等待 火龙果 来解决问题。
海诗美妆 2008-07-31
  • 打赏
  • 举报
回复
建议先解析HTML,然后再分析内容。

解析HTML可以使用HTMLParser
http://htmlparser.sourceforge.net/
  • 打赏
  • 举报
回复
建议想其他的办法吧,正则表达式不是语法分析器,根本做不到去检查 HTML 语法。
songfuqiang 2008-07-31
  • 打赏
  • 举报
回复
换种方式吧
joejoe1991 2008-07-31
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 jishu_vip 的回复:]
mark

等待 火龙果 来解决问题。
[/Quote]

又是大叔的FANS啊。
lxxzhy 2008-07-30
  • 打赏
  • 举报
回复
用编译原理.
rascalboy520 2008-07-30
  • 打赏
  • 举报
回复
这种有点不现实,首先用正则之前,要得到的数据范围是自己清楚知道的,截取不全说明正则写的不对,
而要在截取后再去判断截取的内容,总感觉有点多余,
冰思雨 2008-07-30
  • 打赏
  • 举报
回复
好象没有现成的代码,正则表达式,还要看特定情况来使用。
如果是JDK1.6,String类直接有个函数可以进行字符串的匹配定位。
如果不是,有兴趣的话,楼主看一看模式匹配的相关内容,自己编一个程序来进行吧。
chopin406 2008-07-30
  • 打赏
  • 举报
回复
??????????/关注中
dadi5566 2008-07-30
  • 打赏
  • 举报
回复
关注
wenzheng38 2008-07-29
  • 打赏
  • 举报
回复
类似与从网页中抽取正文啊
有个工具:HTMLParser
或者你可以使用标签密度来抽取你想要的内容
guanghua1985 2008-07-28
  • 打赏
  • 举报
回复
比较复杂呵
lisl2003 2008-07-26
  • 打赏
  • 举报
回复
关注解决方案。
zidasine 2008-07-26
  • 打赏
  • 举报
回复
貌似好像搞不定
不但要检查格式,是否还要检查标签是否是有效的是否是一个存在的标签
zhj92lxs 2008-07-26
  • 打赏
  • 举报
回复
学习下
shuchuanyu 2008-07-26
  • 打赏
  • 举报
回复
用Stack做怎么样
堆栈特点就是LIFO,正好符合标签不能交叉嵌套的特点
至于单个标签的检查应该不是很困难
再有就是根据标签是< > < />决定标签是否入栈(前者入栈,后者不入栈)

我是新手,正在学习
  • 打赏
  • 举报
回复
搞不定
加载更多回复(10)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧