======AAABBBYYY('hello')======AAABBBYYY======
在一段文字中要提取两种字符串:格式包含两种情况,1:仅仅是字符串AAABBBYYY  2:字符串AAABBBYYY后面有“(...)”的如何用正则分别可以提取这两种字符串??

解决方案 »

  1.   

    第一个可以用\w+
    -----------------------------------------------
    千万别按CTRL+W
      

  2.   


    /*
    ======AAABBBYYY('hello')======AAABBBYYY======
    在一段文字中要提取两种字符串:格式包含两种情况,1:仅仅是字符串AAABBBYYY 2:字符串AAABBBYYY后面有“(...)”的如何用正则分别可以提取这两种字符串??
    */
    //package com.ricky.www;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.util.ArrayList;public class Test{
    public static void main(String[] args){
    String content = "======AAABBBYYY('hello')======AAABBBYYY======";
    Object[] array = getContent(content);
    for(Object str : array){
    System.out.println(str);
    }
    }
    public static Object[] getContent(String content){
    String regex = "\\w+(\\(.+\\))?";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(content);
    ArrayList<String> list = new ArrayList<String>();
    while(matcher.find()){
    list.add(matcher.group(0));
    }
    return list.toArray();
    }
    }
      

  3.   

       var a="======AAABBBYYY('hello')======AAABBBYYY======";
       var r = /\w+(\(.+\))?/g;
       var arr= a.match(r);
       alert(arr);
      

  4.   

        public static Object[] getContent(String content){
            String regex = "\\w+(\\(.+\\))?";
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(content);
            ArrayList<String> list = new ArrayList<String>();
            ArrayList<String> list1 = new ArrayList<String>();
            while(matcher.find()){
                // group(1)表示分组(1)的匹配结果
                if( matcher.group(1) == null )
                 list.add(matcher.group(0));   // 没有括号的
                else
                 list1.add(matcher.group(0));  // 有括号的
            }
            System.out.println( "list="+list);
            System.out.println( "list1="+list1);
            return list.toArray();
        }