java--正则表达式

正则表达式 是什么: 1.字符串 2.用来表示一个正确规则的式子

 

例子1:

校验QQ号是否正确:

//QQ号码是由5-11 位数字组成且首位不为0

String qq="123456789";

qq.matches("[1-9][0-9]{4,10}");

 

 表达式的组成规则:

1.字符:

x 字符:字符 x  例子:“1[0-9]{4-10}” 表示 开头为1的QQ号码

\\ 反斜线字符

\n 新行(换行)符('\u000A')

\\r 回车符 ('\u000D')

2 字符类:

[abc] a、b或c(简单类)

[^abc]除了a、b 、c 之外的任何字符

[a-zA-Z] 任意英文字母;

[0-9] 数字0-9中间任意一个 ;

3、预定义字符类:

. :任意字符

\d :数字0-9中的一个

\D:非数字:[^0-9]

\w: 单词字符:[a-zA-Z_0-9]

\W:非单词字符:[^\w]

 

 

4.边界匹配器:

^行开头

$行结尾

\b 单词边界

5.Greedy 数量词:

X? :X一次或一次也没有

X*   :X 出现0次或多次

X+   :X出现1次或多次

X{n}  : 恰好出现n次

X{n,}  :至少n次

X{n,m}:至少出现n次,最多出现m次

 

Pattern 、Matcher 类:

这里介绍下组的概念:组是用括号划分的正则表达式,可以根据组的编号来引用这个组。组号为0表示整个表达式,组号为1表示被第一对括号括起的组,依次类推,例如A(B(C))D,组0是ABCD,组1是BC,组2是C。

Matcher类提供了start(),end(),group()分别用于返回字符串的起始索引,结束索引,以及匹配到到的字符串

Pattern pattern = Pattern.compile("Java");
String test = "123Java456";

Matcher matcher = pattern.matcher(test);
matcher.find();
System.out.println(matcher.start());//返回3
System.out.println(matcher.end());//返回7
System.out.println(matcher.group());//返回Java

Matcher类提供了start(int gropu),end(int group),group(int i),groupCount()用于分组操作

 

Pattern pattern = Pattern.compile("(Java)(Python)");
String test = "123JavaPython456";
Matcher matcher = pattern.matcher(test);
matcher.find();
System.out.println(matcher.groupCount());//返回2

System.out.println(matcher.group(1));//返回第一组匹配到的字符串"Java",注意起始索引是1
System.out.println(matcher.start(1));//返回3,第一组起始索引
System.out.println(matcher.end(1));//返回7 第一组结束索引

System.out.println(matcher.group(2));//返回第二组匹配到的字符串"Python"
System.out.println(matcher.start(2));//返回7,第二组起始索引
System.out.println(matcher.end(2));//返回13 第二组结束索引

更详细的 Pattern Matcher 见 https://www.cnblogs.com/tester-rikaizhao/articles/9802381.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值