当前位置: 代码迷 >> J2EE >> 正则表达式 正则
  详细解决方案

正则表达式 正则

热度:568   发布时间:2016-04-22 00:25:50.0
正则表达式 求一个正则
如下代码
Java code
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();        }    }

我想得到这样的结果
  公司的优点;
政治斗争少,学习空间大
公司的缺点;
加班太多,工作压力大
你给公司的建议;
取消显式的末位淘汰率

------解决方案--------------------
这个真心有点难。。那个标签也太不规则了。。
Java code
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());
------解决方案--------------------
Java code
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();             }
------解决方案--------------------