我想在一个字符串中用正则表达式匹配  如AAAB  或者  1110 这种类型的表达式,正则怎写?字符串中a,b,1,0
可以是任意一个字符。求大神指教java正则表达式

解决方案 »

  1.   

    public static void main(String[] args) {
    String str = "啊啊啊3";
    Pattern pattern = Pattern.compile("(.)\\1{2}.{1}");
    Matcher matcher = pattern.matcher(str);
    System.out.println(matcher.matches());
    }
      

  2.   

    这样写更符合题意一点。。
    public static void main(String[] args) {
    String str = "arxxdxxx2啊啊啊322334";
    Pattern pattern = Pattern.compile("(.)\\1{2}.");
    Matcher matcher = pattern.matcher(str);
    while(matcher.find()){
    System.out.println(matcher.group());
    }
    }
      

  3.   

    不用正则可以么?
    public class StringTest {

    public void setNull(String[] arr){
    for(int i=0;i<arr.length;i++){
    arr[i] = "";
    }
    }

    public String getString(String[] arr){
    StringBuffer buffer = new StringBuffer();
    for(int i=0;i<arr.length;i++){
    buffer.append(arr[i]);
    }
    return buffer.toString();
    }

    public void service(){

    String str = "";
    str = "asadsdhgfhaaa1hfhdfhg";
    // str = "三四个地块j阿萨hhh阿斯达";

    String[] arr = new String[4];

    for(int i=0;i<str.length()-4;i++){
    // System.out.println(str.substring(i,i+1));
    arr[0] = str.substring(i,i+1);
    arr[1] = str.substring(i+1,i+2);
    if(arr[0].equals(arr[1])){
    arr[2] = str.substring(i+2,i+3);
    if(arr[1].equals(arr[2])){
    arr[3] = str.substring(i+3,i+4);
    System.out.println(getString(arr));
    }else{
    setNull(arr);
    }
    }else{
    setNull(arr);
    }
    }
    }


    public static void main(String[] args) {
    StringTest test = new StringTest();
    test.service();
    }

    }
      

  4.   

    我这个不能满足需求?你这个正则把全部相同的也匹配进去了像AAAA也匹配进去了。
      

  5.   

    如CCCd,就是3个字母相同,第四个不同,这样的么?
    感觉得穷举列出来呢。。
      

  6.   

    public class TestReg2 { public static void main(String[] args) {
    String str2 = "222011105559AAAB8888C";
    Matcher m1 = Pattern.compile("((.)\\2{2,}[^0])").matcher(str2);
    while(m1.find()){
    System.out.print(m1.group()+"   ");
    }
    }
    }
      

  7.   

    这是什么强大的软件呀RegexBuddy ,引用错了.真心不好意思(u011114740);
      

  8.   

    没有引用错, 就是我问的呀! RegexBuddy 真是强大的软件,非常感谢!
      

  9.   

    String str="aaa1bbbbcca1";
    for(Matcher mcr=Pattern.compile("(.)\\1{2}(?!\\1).").matcher(str);mcr.find();){
    System.out.println(mcr.group());
    }
      

  10.   

    这个代码也许能帮助你: //解析算术表达式
       class ScriptTest{
           public ScriptEngine se;
           public ScriptTest(){
                ScriptEngineManager sem = new ScriptEngineManager();
                se = sem.getEngineByExtension("js");
           }
           public Object cal(String expression){
               Object result = null;
               try{
                   result = se.eval(expression);
               }catch(Exception e){
                   e.printStackTrace();
                   System.out.println("Error occured");
               }
               return result;
           }
       }