正则表达式的使用


String中的matches方法是告知此字符串是否匹配给定的正则表达式。
String中的split方法是按正则表达式来进行切割。
String中的replaceAll方法是按正则表达式来进行替换的。

正则表达式中的预定义字符类

  . 任何字符(与行结束符可能匹配也可能不匹配)
  \d 数字:[0-9]    注:这里的字符都只是代表后面的意思,真正用的时候还要在前面加上\,才能用来匹配。
  \D 非数字: [^0-9]
  \s 空白字符:[ \t\n\x0B\f\r]
  \S 非空白字符:[^\s]
  \w 单词字符:[a-zA-Z_0-9]
  \W 非单词字符:[^\w]

注意:任何预定义字符没有加上数量词之前都只能匹配一个字符而已。

使用实例:

System.out.println("任意字符:" + ("%".matches(".")));
System.out.println("数字字符:" + ("1".matches("\\d")));
System.out.println("非数字字符:" + ("@".matches("\\D")));
System.out.println("空白字符:" + ("\r".matches("\\s")));
System.out.println("非空白字符:" + ("\n".matches("\\S")));
System.out.println("单词字符:" + ("a".matches("\\w")));
System.out.println("非单词字符:" + ("@".matches("\\W")));

正则表达式中的数量词

Greedy 数量词
  X?   表示X出现一次或一次也没有
  X*   表示X出现零次或多次
  X+   表示X出现一次或多次
  X{n}   表示X出现恰好 n 次
  X{n,}   表示X出现至少 n 次
  X{n,m}   表示X出现至少 n 次,但是不超过 m 次

使用实例:

System.out.println("?一次或一次也没有:" + ("".matches("\\d?")));
System.out.println("*  零次或多次:" + ("123".matches("\\d*")));
System.out.println("+  至少出现一次:" + ("1".matches("\\d+")));
System.out.println("{次数}  恰好出现n次:" + ("12345678911".matches("\\d{11}")));
System.out.println("{次数,}  至少要出现指定的次数:" + ("124".matches("\\d{3,}")));
System.out.println("{次数1,次数2}  指定出现次数的范围:" + ("1242".matches("\\d{3,4}")));

正则表达式中的范围词

[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) 其实和[a-dm-p]一样道理
[a-z&&[def]] d、e 或 f(交集)

注意:范围词里面不管内容有多长,没有数量词的配合都只能匹配一个字符而已。
使用实例:

System.out.println("d".matches("[abc]"));
System.out.println("@".matches("[^abc]"));
System.out.println("字符可以出现在a-z之间:"+("#".matches("[a-z0-9]")));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值