Java正则表达式基础

概念

正则表达式 ( r e g e x ) (regex) (regex):用来快速匹配或检查合法字符串的模板

常用正则表达式符号
  1. 英文句点. 表示匹配任意单个字符

    eg. a.c的合法匹配abc

  2. [] 匹配方括号内单个指定字符

    eg. a[bc]d的合法匹配abd, acd

  3. | 相当于或,匹配指定其中一项 ( 不 一 定 是 单 个 字 符 ) (不一定是单个字符) ()

    eg. a(b|c|dd)e 的合法匹配 abe, ace, adde

  4. * 表示匹配0次或多次

  5. + 表示匹配1次或多次

  6. ? 表示匹配0次或1次

  7. {n} 表示匹配恰好n次

  8. {n,m} 表示匹配n到m次 **注意不能使用空白字符,如写成{n, m} **

  9. - 表示范围,所以在字符串中要加转义字符\

  10. ^ 表示非,用于方括号内表示不匹配的字符

    eg. [^x]代表第一个字符不为x

  11. \d 表示[0-9]

  12. \D 表示[^0-9]

  13. \w 表示[0-9A-Za-z]

  14. \W 表示^[0-9A-Za-z]

  15. \s 表示[\t\n\r\f]

  16. \S 表示[^\t\n\r\f]

eg. [\\d]{3}-[\\d]{2}-[\\d]{4} 表示字符串xxx-xx-xxxx 其中x为数字

**java中 \\d 第一个 ‘\’ 表示转义,第二个 ‘\’ 表示反斜杠本身,所以上述正则表达式需要用\\d表示,而表示一个字符意义的’\’ 需要用四个’\\\\’ 表示,区别与cpp的语法 **

注意空白符不能随意放到正则表达式中

**.* 表示任何字符串 **

替换和拆分字符串

String 类提供了多种方法

String s = "java java java";
//matches方法返回类型boolean判断字符串是否匹配正则表达式
//replaceAll方法替换所有匹配的子字符串
System.out.println(s.repalceAll("v\\w","wi"));
//输出"jawi jawi jawi"
//replaceFirst方法替换第一个匹配的字符串
System.out.println(s.repalceAll("v\\w","wi"));
//输出"jawi java java"

//split方法分割字符串为子字符串,重载了两种方法
//split(regex)方法
String[] tokens = "Java1HTML2Perl".split("\\d");
//拆分为"Java"、"HTML"、"Perl"并保存再tokens[0]、tokens[1]、tokens[2]中
//split(regex,limit)方法,限定了模式匹配次数,如果limit<=0,等价于split(regex),否则模式最多匹配limit-1次;
量词符的贪婪性

这一位置它们会尽可能匹配最多次

System.out.println("Jaaavaa".replaceFirst("a+","R"));//输出JRvaa

如果要变为"惰性",意味着匹配尽可能少的次数

System.out.println("Jaaavaa".replaceFirst("a+?","R"));//输出JRaavaa

-END-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值