问一下,关于一个正则表达式的问题

果冻虾仁 2014-01-21 11:19:12
我要匹配目标串是,含有至少两个连续的相同的字符,但不包括ee和oo。默认给出的字符串都是小写字母。
请问这个正则表达式怎么写?
...全文
1805 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落夏天 2014-01-22
  • 打赏
  • 举报
回复
你试试吧 String input="gewgweffzz"; String regex="^(?!^.*ee|oo.*$).*(\\w)\\1{1}.*$"; Matcher m = Pattern.compile(regex).matcher(input); System.out.println(m.matches());
慢慢地转变 2014-01-22
  • 打赏
  • 举报
回复
String reg = "^[a-df-np-z]{0,}[e]?[o]?[a-df-np-z]{0,}$"; LZ,你可以测试下,我匹配的全是小写的字符初了出现多次e和o的情况。不知道能满足你的需求不
oh_Maxy 版主 2014-01-22
  • 打赏
  • 举报
回复
这样呢:

        String str = "abc1ea";
        Pattern p = Pattern.compile("([0-9a-df-np-zA-Z])\\1{1}");
        Matcher m = p.matcher(str);
        if(m.find()){
            System.out.println(str);
        }
        else{
            System.out.println("要打印包含连续重复字符,且不包含ee或oo的字符串");
        }
参考博文:http://blog.csdn.net/atomcrazy/article/details/9087187
果冻虾仁 2014-01-21
  • 打赏
  • 举报
回复
引用 2 楼 oh_Maxy 的回复:
逆向思维:

        String str = "aeoeo";
        Pattern p = Pattern.compile("(ee|oo)");
        Matcher m = p.matcher(str);
        if(!m.find()){
            System.out.println(str);
        }
        else{
            System.out.println("不打印包含ee或oo的字符串");
        }
不好意思,你理解错了,我是说匹配的规则是连续两个相同的字符。但是不算ee和oo
oh_Maxy 版主 2014-01-21
  • 打赏
  • 举报
回复
逆向思维:

        String str = "aeoeo";
        Pattern p = Pattern.compile("(ee|oo)");
        Matcher m = p.matcher(str);
        if(!m.find()){
            System.out.println(str);
        }
        else{
            System.out.println("不打印包含ee或oo的字符串");
        }
  • 打赏
  • 举报
回复
String reg = "([^eo])\\1+"; 我测试了一下可以,你试试

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧