Java 程序设计之正则表达式

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

字符含义说明
\转义字符
.匹配任意字符
\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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值