没看懂……
什么叫做自动能生成相应的正则?意思是如果给的字符串是aabbbccc,生成的正则表达式就是a{2}b{3}c{3}?只要给定了字符串,那这个应该不难,只是判断字符的连续性就行了,没别的啊

解决方案 »

  1.   


        public String getRegex(String strParam)
        {
            String strResult = "";
            String strTemp = "";
            String strSave = "";
            int count = 0;
            for(int i=0; i<strParam.length(); i++)
            {
                strTemp = strParam.substring(i, i+1);
                if(!strSave.equals(""))
                {
                    if(strTemp.equals(strSave))
                    {
                        count++;
                    }
                    else
                    {
                        if(strSave.equals("."))//这里要把正则表达式的所有元字符都列出来,在前面加上\,否则不能正确识别
                        {
                            strSave = "\\" + strSave;
                        }
                        strResult += strSave + "{" + String.valueOf(count).trim() + "}";
                        strSave = strTemp;
                        count = 1;
                    }
                }
                else
                {
                    strSave = strTemp;
                    count ++;
                }        }
            strResult += strSave + "{" + String.valueOf(count).trim() + "}";
            
            return strResult;
        }测试数据:aabb8889127
    结果:a{2}b{2}8{3}9{1}1{1}2{1}7{1}lz不会需要的就是这个吧?
      

  2.   

    自动生成正则难度太大了吧
    就一个字母a,你可以用\w来匹配也可以用.来匹配。粒度问题太难确定了
    我给你一个字符串abc
    也许我想匹配的是\db\d,也可以是^a.*,同样可以是.*?c$
    从需求上来讲,就被否定了可行性
      

  3.   

    这个不可能,正则的写法不同但是能验证相同的东西!
    你要是想精通正则  那就学习 per 破 语言吧!
      

  4.   

    楼上的正则不需要去学perl 破语言的
      

  5.   


    String s       = "....";
    String pattern = Pattern.quote(s);
    Pattern.quote 可生成一个表达式,完全匹配 s
    其实就是对参数 s 进行正则转义