正则表达式

正则表达式

  1. 普通字符
    普通字符就是利用数字、大小写字母、下滑线等作为原子使用
Pattern p = Pattern.compile("noble");
Matcher m = p.matcher("java is learned by noble");
System.out.println(m.find());//true

2.非打印字符
常用的:

\d 匹配一个数字字符。等价于[0-9]
\D 匹配一个非数字字符。等价于[^0-9]
\n 匹配一个换行符。等价于\x0a和\cJ
\r 匹配一个回车符。等价于\x0d和\cM
\s 匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]
\t 匹配一个制表符。等价于\x09和\cI
\w 匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”
\W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”

Pattern p = Pattern.compile("\\d");
Matcher m = p.matcher("java 424is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());//4

Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher("java 424is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());//424

Pattern p = Pattern.compile("\\W");
Matcher m = p.matcher("java 424is learned by noble");
System.out.println(m.find());//true
System.out.println(m.start());//4

Pattern p = Pattern.compile("[a-z1-9]");
Matcher m = p.matcher("java 424is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());//j

Pattern p = Pattern.compile("[a-zA-Z]{3,5}");
Matcher m = p.matcher("javAJAva 424is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());//javAJ

3.元字符

字符描述
$匹配输入字符的结尾位置
()标记一个子表达式的开始和结束位置
*匹配前面的子表达式0或多次
+匹配前面的子表达式1或多次
.匹配出\之外的任何单字符
[]标记一个单字符的范围
{}标记限定表达式的开始
|将下一个字符标记为特殊字符
^匹配输入字符串的开始位置。在中括号中使用表达否
字符描述
?匹配前面的子表达式0次或一次
{n}匹配前面的子表达式n次
{n,}至少匹配前面的子表达式n次
{n,m}匹配前面的子表达式最少n次最多m次
Pattern p = Pattern.compile("^JAva");
Matcher m = p.matcher("javAJAva 424is learned by noble");
System.out.println(m.find());//false

Pattern p = Pattern.compile("^javA");
Matcher m = p.matcher("javAJAva 424is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());//javA

Pattern p = Pattern.compile("noble$");
Matcher m = p.matcher("javAJAva 424is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());

Pattern p = Pattern.compile("by$");
Matcher m = p.matcher("javAJAva 424is learned by noble");
System.out.println(m.find());//false

Pattern p = Pattern.compile("42(4)?");
Matcher m = p.matcher("javAJAva 42444is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());//424

Pattern p = Pattern.compile("42(4){2,4}is");
Matcher m = p.matcher("javAJAva 42444is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());

Pattern p = Pattern.compile("l.*?n");
Matcher m = p.matcher("javAJAva 42444is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());//learn


Pattern p = Pattern.compile("l.*n");
Matcher m = p.matcher("javAJAva 42444is learned by noble");
System.out.println(m.find());//true
System.out.println(m.group());//learned by n


Java 正则表达式的使用
(Pattern and martcher):
https://blog.csdn.net/hahaha237/article/details/108106915

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值