我的程序里要替换些不确定的东西
     比如:<div id=yschres>      <div id=yschcont style="margin-left:0px;">         <div id=yschpri style="margin-left:5px;">            <div id=yschrel>
   有这么多的DIV  我需要在id的属性上加上""双引号 变成 如:<div id="yschres">      <div id="yschcont" style="margin-left:0px;">     我应该如何替换呢!!
            谢谢各位高手了

解决方案 »

  1.   

    replace the specified string in Regular Expression.<div\x20*id=\w+(\x20|>)>Does it work??
      

  2.   

    对不起 我没有看明白你的意思 
     应该用replaceAll这个方法吧  我到是找到个规律 都是以<div id=开始的 在找到id后面的第一个空格 就可以了替换了 但是正责 我确实不熟悉 麻烦楼上的朋友了 先谢谢了
      

  3.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class divid
    { public static void main(String[] args)
    {
    String a = "";
    int flag = 0;
    String s = "<div id=yschres> <div id=yschcont " +
        "style=\"margin-left:0px;\">" +
        "<div id = wang>";

    Pattern pattern = Pattern.compile("<div id\\s*=\\s*?([a-zA-Z0-9]+)");
    Matcher m = pattern.matcher(s);

    while (m.find())
    {
    if (flag == 0)
    {
    a = s.replaceAll(m.group(1), "\"" + m.group(1) + "\"");
    ++flag;
    }
    else
    {
    a = a.replaceAll(m.group(1), "\"" + m.group(1) + "\"");
    }

    }

    System.out.println(a); }}
      

  4.   

    十分感谢楼上的朋友 不过还有一个小小的问题<div class=yschabstr 也要加双引号 我就按照你上面写的 改了点Pattern pattern = Pattern.compile("<div class\\s*=\\s*?([a-zA-Z0-9]+)");  但是结果变成<div class=""""""""""yschabstr"""""""""" 
     
      谢谢了 由于比较着急 我还没来的及分析你写的了 因为没怎么用过正责 谢谢了
      

  5.   

    你多贴一些例子代码,我好研究一下,最好是有class和id的
      我把id换成class又可以啊
      

  6.   

    以下是代码。import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class UtilRegex {

    static String reg_div = "<div .*?id=.*?>";
    static String reg_id = "id=\\w+?\\b";
    public static void main(String[] arg) throws Exception{
    String s = "<div   id=yschres>             <div   id=yschcont   style=\"margin-left:0px;\">                   <div   id=yschpri   style=\"margin-left:5px;\">                         <div   id=yschrel>";
    String ret = trans(new StringBuffer(s),reg_div,replace_div).toString();
    System.out.println(s);
    System.out.println(ret);
    }
    static I_Trans replace_id = new I_Trans(){
    // id=yschres  to id="yschres"
    public String doTrans(String org){
    return org.substring(0,3)+"\""+org.substring(3)+"\"";
    }
    };
    static I_Trans replace_div = new I_Trans(){
    public String doTrans(String org){
    // for the <div...>, find id=... and replace it
    return trans(new StringBuffer(org),reg_id,replace_id).toString();
    }
    };
    public static StringBuffer trans(StringBuffer org,String orgrex,I_Trans itrans){
    Pattern p = Pattern.compile(orgrex);
    Matcher m = p.matcher(org);

    StringBuffer sb = new StringBuffer();
    String replacement = "";
    while(m.find()){
    replacement = m.group();
    // System.out.println("find one:"+replacement);
    replacement = itrans.doTrans(replacement);
    m.appendReplacement(sb,replacement);
    }
    m.appendTail(sb);
    return sb;
    }}
    /**
     * indicate how to replace the found string
     */
    interface I_Trans{
    public String doTrans(String s);
    }