Java 程序设计之正则表达式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/loverycjj/article/details/79623037

正则表达式
用于对文件或文本的检测。
基本常用正则表

字符 含义 说明
\ 转义字符
. 匹配任意字符
\d 表示数字
\D 表示非数字
\s 空白符 空格,tab,换行,换页和回车
\S 非空白符
^ 匹配以什么开始
()? 表示括号内的东西可有可无
$ 匹配输入字符结尾的位置 一行的开始
* 匹配零次或多次
+ 匹配一次或多次
{n} 正好匹配n次
{n,} 至少匹配n次
{n,m} 至少匹配n次,至多匹配m次
) ,( 匹配左右括号
| 匹配两边中的一个
[abc] 匹配中括号内的任意字符
[^abc] 匹配中括号内的反向字符
[a-z] 范围匹配
\b 匹配边界字符 例如:er\b 匹配后面的er 词的边界
\B 非字符边界匹配 与上面相反
\t 匹配制表符
\v 匹配垂直制表符
\w 匹配任何单词 与[A-Z a-z 0-9] 等效
\W 匹配任何非单词

正则表达式的使用

注意 Java与其它语言不同,它对反斜线\的处理不同:

其它语言:\\表示“我想要在正则表达式中插入一个普通的(字面上的)反斜线,请不要给它任何意义。”
Java语言:\\表示“我要插入一个正则表达式的反斜线,使后面的字符具有特殊的意义”

量词:
量词描述了一个模式吸收输入文本的方式:

  • 贪婪型:量词总是贪婪的,除非有其他的选项被设置。
  • 勉强型:用问号来指定,这个量词匹配满足模式所需要的最少字符数。
  • 占有型:目前这种量词只有在Java语言中才可用,并且也更高级;当正则表达式被应用于字符串时,它会产生相当多的状态,以便在匹配失败时可以回溯。而”占有的“量词并不保存这些中间状态,因而可以防止回溯。它们常常用来防止正则表达式失控,因此可以使正则表达式执行更有效。(不是很懂)
贪婪型 勉强型 占有型 匹配方式
X? X?? X?+ 一个或零个X
X* X*? X*+ 零个或多个X
X+ X+? X++ 一个或多个X
X{n} X{n}? X{n}+ 刚好n次X
X{n,} X{n,}? X{n,}+ 至少n次X
X{n,m} X{n,m}? X{n,m}+ 至少n次,至多m次X

猜你喜欢

转载自blog.csdn.net/loverycjj/article/details/79623037