假设有一个字符串String str = "abc<icon>def</icon>deftfh<icon>a</icon>";
怎样可以取得<icon>与</icon>之间的字符串。取得的结果为def和a.求帮忙用java代码实现,谢谢。stringjava

解决方案 »

  1.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class GetTag {
    public static void main(String[] args){
    String str = "abc<icon>def</icon>deftfh<icon>a</icon>"; Pattern p=Pattern.compile("<icon>(\\w+)</icon>");
    Matcher m=p.matcher(str);
    while(m.find()){
            System.out.println(m.group(1));
           
        }
    }
    }
      

  2.   

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class MatcherTest { public static List<String> match(String s) {
    List<String> results = new ArrayList<String>();
    Pattern p = Pattern.compile("<icon>([\\w]*)</icon>");
    Matcher m = p.matcher(s);
    while (!m.hitEnd() && m.find()) {
    results.add(m.group(1));
    }
    return results;
    } /**
     * @param args
     */
    public static void main(String[] args) {
    String s = "abc<icon>def</icon>deftfh<icon>a</icon>";
    System.out.println(Arrays.toString(MatcherTest.match(s).toArray(
    new String[0])));
    }}
      

  3.   

    不好意思,我中间是一个图片的路径,用你那方法好像不行,因为\\w只匹配了单词。
    如“dfdds<icon>image/expressions/p24.gif</icon>你好<icon>image/expressions/p25.gif</icon>”,这要如何写正则表达式,谢谢。
      

  4.   

    不好意思,我中间是一个图片的路径,用你那方法好像不行,因为\\w只匹配了单词。
    如“dfdds<icon>image/expressions/p24.gif</icon>你好<icon>image/expressions/p25.gif</icon>”,这要如何写正则表达式,谢谢。
      

  5.   

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class MatcherTest { public static List<String> match(String s) {
    List<String> results = new ArrayList<String>();
    Pattern p = Pattern.compile("<icon>([\\w/\\.]*)</icon>");
    Matcher m = p.matcher(s);
    while (!m.hitEnd() && m.find()) {
    results.add(m.group(1));
    }
    return results;
    } /**
     * @param args
     */
    public static void main(String[] args) {
    String s = "dfdds<icon>image/expressions/p24.gif</icon>你好<icon>image/expressions/p25.gif</icon>";
    System.out.println(Arrays.toString(MatcherTest.match(s).toArray(
    new String[0])));
    }}
      

  6.   


    Matcher m=Pattern.compile("<icon>(.*?)</icon>").matcher(你的字符串);
    while(m.find())
      System.out.println(m.group(1));
      

  7.   

    public class Demo
    {
    public static void main(String[] args)
    {
    String str="abc<icon>def</icon>deftfh<icon>a</icon>";
    String[] res=get(str);
    for(String re:res)
    {
    System.out.println(re);
    }
    }
    public static String[] get(String str)
    {
    int indexStart=0;
    StringBuilder sb=new StringBuilder();
    while(indexStart<str.length())
    {
    int index1=str.indexOf("<icon>", indexStart);
    int index2=str.indexOf("</icon>", indexStart);
    int length=index2-index1-6;
    for(int j=index1+6;j<=index1+6+length-1;j++)
    {
    sb.append(str.charAt(j));
    }
    sb.append(",");
    indexStart=index2+7;
    }
    String[] result=sb.toString().split(",");
    return result;
    }
    }
      

  8.   

    您写的很好。希望您可以再帮我看看这个问题。谢谢。
    http://bbs.csdn.net/topics/390368717
      

  9.   

    您写的很好。希望您再帮我解决这个问题。谢谢
    http://bbs.csdn.net/topics/390368717