怎么用正则来提取内容?马上给分String str = “ffafd&#test1;afafdi&#test2;&#test3;1344343....”怎么把test1 ,test2,test3 (就是&#和;之间的内容?)给提取出来,然后放到数组里面啊?

解决方案 »

  1.   

    string s=regex.replace(str,"&#[^;]*","$");
    string[] ss=s.split('$')
      

  2.   

    to :tgl10(天狗螺) 谢谢!
       如果是 String str = “ffafd&#test1;afafdi&#test2;&#test3;&#134&#4343....”
    只提取test1,2,3的话上面的是不是也可以阿?
      

  3.   

    我上面的写错了!!!!!!!!!!!!!!!!!!!!!!!!
    string[1024] ss;   //合适大小
    int i=0;foreach(match in regex.matchs(str,"&#[^;]*")){
    ss[i++]=match.value;
    }
      

  4.   

    "&#[^;]*" 就是匹配&#和最近的;之间的内容
      

  5.   

    public class RegTest
    {
    /**
     * @param args
     */
    public static void main(String[] args)
    {
    java.util.regex.Pattern p=java.util.regex.Pattern.compile("&#([^&]*);");
    java.util.regex.Matcher m=p.matcher("ffafd&#test1;afafdi&#test2;&#test3;1344343");
    java.util.List list=new java.util.ArrayList();
    while(m.find())
    {
    System.out.println(m.group(1));
    list.add(m.group(1));
    }
    Object[] s=list.toArray();
    for(int i=0;i<s.length;i++)
    System.out.println(s[i]);
    }
    }
      

  6.   

    或者改为:
    public class RegTest
    {
    /**
     * @param args
     */
    public static void main(String[] args)
    {
    java.util.regex.Pattern p=java.util.regex.Pattern.compile("&#([^;]*);");
    java.util.regex.Matcher m=p.matcher("ffafd&#test1;afafdi&#test2;&#test3;1344343");
    java.util.List list=new java.util.ArrayList();
    while(m.find())
    {
    System.out.println(m.group(1));
    list.add(m.group(1));
    }
    Object[] s=list.toArray();
    for(int i=0;i<s.length;i++)
    System.out.println(s[i]);
    }
    }这样更合理一些
      

  7.   

    老大你说明一下("&#([^&]*);")的意思,分马上给
      

  8.   

    看字符串中是否包含&、#、(、[、^、;、]、*、)、字符;
      

  9.   

    ("&#([^&]*);")表示的是:以“&#”开头以“;”结尾,中间包含任意多个字符(这些字符中不能包含“&”)同理("&#([^;]*);")也是一样。程序中的group(1)指的就是“[^&]*”内容。
    这些在jdk的API文档中的java.util.regex.Pattern中都有说明!可以自己查看一下详细的说明。