var str="<in> <a1> id1 </a1> <a2> </a2> <a3> 1000 </a3> </in> <out> <m1> 001 </m1> <m2> </m2> </out> ";
str=str.replace(/<(.*?)>\s*<\/\1>/g,"<$1>无内容</$1>");
//str="<in> <a1> id1 </a1> <a2>无内容</a2> <a3> 1000 </a3> </in> <out> <m1> 001 </m1> <m2>无内容</m2> </out> ";

解决方案 »

  1.   

    zjerryj 你写的对,但如果是用JAVA来写要怎么写呢?
      

  2.   


    package test1;
    import java.util.regex.Pattern;
    import java.util.regex.Matcher;;
    public class Test18 {
    public static void main(String[] args)
    {
    String str="<in> <a1> id1 </a1> <a2> </a2> <a3> 1000 </a3> </in> <out> <m1> 001 </m1> <m2> </m2> </out> ";
    Pattern re = Pattern.compile("<(.*?)>\\s*<\\/\\1>");
    Matcher m=re.matcher(str);
    System.out.println(m.replaceAll("<$1>无内容</$1>"));
    }
    }