2 guotong1988 guotong1988 于 2015.06.04 16:31 提问

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

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

5个回答

tongyi55555
tongyi55555   2015.06.04 16:52
已采纳

除了a字母以外:

Pattern pattern = Pattern.compile("[b-z&&[^a]]+");
sbt0198
sbt0198   2015.06.04 16:38

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

danielinbiti
danielinbiti   Ds   Rxr 2015.06.04 16: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 17:17

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

xionglangs
xionglangs   Rxr 2015.06.05 12:07

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!