import java.util.regex.Matcher;
import java.util.regex.Pattern;/**
 * ><name>Bill</name><salary>50000</slary><title>GM</title>使用正则表达式来解析表达式中的文字
 * @author Administrator
 *
 */
public class Demo4 {

public static void test()
{
String regex="<\\w+>(.)+</\\w+>"; String value="<name>Bill</name><salary>50000<slary><title>GM</title>";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(value);
    int i=m.groupCount();
    System.out.println("组数"+i);
    while(m.find())
    {
     System.out.println(m.group(1));
    }
}

public static void main(String[] args)
{
test();
}

}
打红线部分  我错了。 目的就是用一个 组,来把中间的内容解析出来。
希望在我的基础上面修改。  
输出结果就是:
1
Bill
50000
GM
   请大虾帮忙 ,小弟不胜感激。

解决方案 »

  1.   

    String regex="<\\w+>(.)+</\\w+>"
      

  2.   

    String regex=">([^<]+?)<";
      

  3.   

    String regex="<\\w+>([^<]+)</\\w+>";
      

  4.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;/**
     * ><name>Bill</name><salary>50000</slary><title>GM</title>使用正则表达式来解析表达式中的文字
     * @author Administrator
     *
     */
    public class Demo4 {
        
        public static void test()
        {
            String regex="<\\w+>([^<]+)</\\w+>";
            String value="<name>Bill</name><salary>50000</salary><title>GM</title>";
            Pattern p=Pattern.compile(regex);
            Matcher m=p.matcher(value);
            int i=m.groupCount();
            System.out.println("组数"+i);
            while(m.find())
            {
                System.out.println(m.group(1));
            }
        }
        
        public static void main(String[] args)
        {
            test();
        }
        
    }
      

  5.   

    你的例子有问题,salary都不是配对出现的
    这种需求适合用反向引用来做    public static void test()
        {
            String regex="<(\\w+)>([^<]+)</\\1>";
            String value="<name>Bill</name><salary>50000</salary><title>GM</title>";
            Pattern p=Pattern.compile(regex);
            Matcher m=p.matcher(value);
            while(m.find())
            {
                System.out.println(m.group(2));
            }
        }
      

  6.   

    (1)如果salary属于楼主笔误,那么String regex = "<(\\w+)>(\\w+)</\\1>";
    (2)如果salary不属于楼主笔误,那么String regex = "<\\w+>(\\w+)</\\w+>";