正则表达式 求一个正则

a512796048 2012-10-19 12:44:50
如下代码
public static void main(String[] args) {

try {

String s = "";
String html = " <p class='' style='padd-bottom:3px;'><strong>公司的优点</strong></p>"+"政治斗争少,学习空间大"
+ "<br /><br /><p class='' style='padd-bottom:3px;'><strong>公司的缺点</strong></p>"
+ "加班太多,工作压力大"
+ "<br /><br /><p class='' style='padd-bottom:3px;'><strong>你给公司的建议</strong></p>"
+ "取消显式的末位淘汰率<div style='padding-top:10px;color:#333333;' id='less_rating_129277'>";
String reg = "</strong></p>.*";

Pattern pattern = Pattern.compile(reg, Pattern.CASE_INSENSITIVE
| Pattern.MULTILINE | Pattern.DOTALL);
Matcher matcher = pattern.matcher(html);
if (matcher.find()) {
s=matcher.group();
}
System.out.println(s);
} catch (Exception e) {
e.printStackTrace();
}

}

我想得到这样的结果
公司的优点;
政治斗争少,学习空间大
公司的缺点;
加班太多,工作压力大
你给公司的建议;
取消显式的末位淘汰率
...全文
112 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
a512796048 2012-10-22
  • 打赏
  • 举报
回复
谢谢 2楼 3楼 回复4楼的 改不了 这个是我要抓取的网站上的数据格式 - -
a8509190 2012-10-19
  • 打赏
  • 举报
回复
这个貌似不需要正则都可以,把每个字符串 字符判断就可以了
wapigzhu 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

这个真心有点难。。那个标签也太不规则了。。
Java code

String html = " <p class='' style='padd-bottom:3px;'><strong>公司的优点</strong></p>"
+ "政治斗争少,学习空间大"
+ "<br /><br /><p class='' ……
[/Quote]
改成String reg = "<strong>(.+?)</strong.+?p>(.+?)[<br|<div]";
应该要好些
fengyun817 2012-10-19
  • 打赏
  • 举报
回复

try {

String s = "";
String html = " <p class='' style='padd-bottom:3px;'><strong>公司的优点</strong></p>"+"政治斗争少,学习空间大"
+ "<br /><br /><p class='' style='padd-bottom:3px;'><strong>公司的缺点</strong></p>"
+ "加班太多,工作压力大"
+ "<br /><br /><p class='' style='padd-bottom:3px;'><strong>你给公司的建议</strong></p>"
+ "取消显式的末位淘汰率<div style='padding-top:10px;color:#333333;' id='less_rating_129277'>";
String reg = "<[^>]+>([^<>]+?)<[^>]+>";

Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(html);
while (matcher.find()) {
s=matcher.group(1);
System.out.println(s);
}

} catch (Exception e) {
e.printStackTrace();
}
wapigzhu 2012-10-19
  • 打赏
  • 举报
回复
这个真心有点难。。那个标签也太不规则了。。

String html = " <p class='' style='padd-bottom:3px;'><strong>公司的优点</strong></p>"
+ "政治斗争少,学习空间大"
+ "<br /><br /><p class='' style='padd-bottom:3px;'><strong>公司的缺点</strong></p>"
+ "加班太多,工作压力大"
+ "<br /><br /><p class='' style='padd-bottom:3px;'><strong>你给公司的建议</strong></p>"
+ "取消显式的末位淘汰率<div style='padding-top:10px;color:#333333;' id='less_rating_129277'>";
String reg = "\\<strong\\>([\u4E00-\u9FA5]+).+?p\\>(\\S+?)[<br|<div]";
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(html);
StringBuffer sb = new StringBuffer();
while(matcher.find()) {
sb.append(matcher.group(1) + ":" + matcher.group(2) + ";");
}
System.out.println(sb.toString());

输出:公司的优点:政治斗争少,学习空间大;公司的缺点:加班太多,工作压力大;你给公司的建议:取消显式的末位淘汰率;

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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