guotong1988
运动码农
采纳率36.6%
2015-06-04 08:31 阅读 7.7k
已采纳

java正则表达式,如何表示一个非某个字符的匹配

知道 非所有字符 是[^a-z]
但是 怎么表示非 某一个字符?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    tongyi55555 JonsonJiao 2015-06-04 08:52

    除了a字母以外:

    Pattern pattern = Pattern.compile("[b-z&&[^a]]+");
    
    点赞 1 评论 复制链接分享
  • sbt0198 白鼠闹东京 2015-06-04 08:38

    a-z,其实就是表示26个小写字母,如果是一个的话,就写一个好了。[^a]

    点赞 1 评论 复制链接分享
  • danielinbiti danielinbiti 2015-06-04 08:41

    可以反向,就是找包含某个字符

     public static void main(String[] args) {
              Pattern pattern = Pattern.compile("(k)+");
              Matcher matcher = pattern.matcher("danielinbiti");
              if(matcher.find()){
                  System.out.println("包含有k");
              }else{
                  System.out.println("不含有k");
              }
        }
    
    点赞 评论 复制链接分享
  • Haydroid Haydroid 2015-06-04 09:17

    针对字符的“非”:不容许出现某个或某几个字符。这是最简单的情况,直接用排除型字符组就可以对付。如果要匹配的单词是c开头、t结尾,中间有一个字符,但不能是u(也就是说,整个单词不能是cut),直接用『c[^u]t』就可以了,若中间的字符不能是a或u(也就是说,整个单词不能是cat或cut),则表达式改为『c[^au]t』。
    图片说明

    点赞 评论 复制链接分享
  • xionglangs 编程爱好者熊浪 2015-06-05 04:07

    先匹配某字母,在加个非啊[^a]

    点赞 评论 复制链接分享

相关推荐