正则表达式——简述

正则表达式是一个匹配字符串的模板,任何字符串都能作为正则表达式,可以对字符串进行查找、提取、分割、替换等操作。

String类提供了几个特殊方法,

  • boolean matches(String regex):判断该字符串是否匹配指定的正则表达式
  • String replaceAll(String regex, String replacement):将该字符串中所有匹配regex的字串替换成replacement
  • String replaceFirst(String regex, String replacement):将该字符串中第一个匹配regex的字符串替换成replacement、
  • String split(String regex):以regex作为分隔符,将该字符串分割成多个字串

1、合法字符:

  • x:字符x
  • \0mnn:八进制数0mnn所表示的字符
  • \xhh:十六进制0xhh所表示的字符
  • \uhhhh:十六进制0xhhhh所表示的Unicode字符
  • \t:制表符('\u0009')
  • \n:换行符('\u000A')
  • \r:回车符('\u000D')
  • \f:换页符('\u000C')
  • \a:报警符('\u0007')
  • \cx:x对应的控制符,x必须是字母

2、特殊字符:匹配其本身时需要使用转义字符(\)

  • $
  • ^
  • ( )
  • [ ]
  • { }
  • *
  • +
  • ?
  • .
  • \
  • |

3、通配符:

  •  “.”:可以匹配任何字符
  • \d:匹配0-9的所有数字
  • \D:匹配非数字
  • \s:匹配所有空白字符(空格、制表符、回车符、换页符、换行符)
  • \S:匹配非空白符
  • \w:匹配所有单词符(英文字母、数字、下划线)
  • \W:匹配非单词符

4、方括号:

  • 表示枚举:[abcd]表示a、b、c、d其中任意一个字符
  • 表示范围-:[a-c]表示a-c范围内的任意字符   [a-cd-z]表示a-c、d-z范围内的任意字符
  • 表示求否:[^abc]表示非a、b、c的任意字符
  • 表示与&&:[a-z&&[def]]:表示a-z与[def]的交集

5、边界通配符:

  • ^:行的开头
  • $:行的结尾
  • \b:单词的边界
  • \B:非单词的边界
  • \A:输入的开头
  • \G:前一个匹配的结尾
  • \Z:输入的结尾,仅用于最后的结束符
  • \z:输入的结尾

6、数量标识符:

  • Greedy(贪婪模式):数量表示符默认采用贪婪模式,该模式会一直匹配下去,知道无法匹配
  • Reluctant(勉强模式):用问号(?)后缀表示,只会匹配最少的字符
  • Possessive(占有模式):用加号(+)后缀表示,目前只有Java支持,通常比较少用
三种模式的数量表示符
贪婪模式勉强模式占用模式说明
X?X??X?+X表达式出现零次或一次
X*X*?X*+X表达式出现零次或多次
X+X+?X++X表达式出现一次或多次
X{n}X{n}?X{n}++X表达式出现n次
X{n,}X{n,}?X{n,}+X表达式最少出现n次
X{n,m}X{n,m}?X{n.m}+X表达式最少出现n次,最多出现m次

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值