我是靠谱客的博主 俏皮路人,最近开发中收集的这篇文章主要介绍Java日记之正则表达式(基础语法与在Java中的使用)前言一、正则表达式是什么?二、工具和基本语法,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 前言
- 一、正则表达式是什么?
- 二、工具和基本语法
- 1.匹配字符
- 2.量词
- 3.字符边界
- 4.匹配模式
- 5.分支结构
- 6.预搜索
- 7.使用正则表达式匹配电话或邮箱
- 8.在Java中使用正则表达式
前言
先从工具讲起
一、正则表达式是什么?
对待正则表达式 , 应该将其看成是一门独立的语言 , 用于复杂的文本操作中提取相应规则对应的文本 , 就是通过一个规则匹配一类字符
二、工具和基本语法
工具使用找在线版的就可以 , 毕竟不会用它来写代码
下面讲讲语法
1.匹配字符
1. d 匹配任一数字 (注意这里我写的是一)
2. w 任意字母数字下划线
3. s 匹配空格或制表符或换行符
4. . 匹配除换行符以外的任一字符
5. - 区间
6. ^ 匹配除去后接的内容之外的字符
注意 : 在Java中使用的时候 , 上述表达式都必须加上 转义 除了
^
和-
[] 可匹配其中任一字符,如:
1.[abc@] 匹配a或b或c或@
2.[^A-F0-3] 匹配从A~F,0~3之外的字符
2.量词
修饰匹配次数 , 举例说
1. d{6} 匹配6位数字
2. dd{6} 匹配6位数字,再加上前面的一次
3. (dd){6} 前面括号内的一组重复6次
4. {m,n} 最少m次,最多n次 [贪婪模式]
5. {m,n}? 匹配3个,取下限 [非贪婪模式]
6. {m,} 最少3次 ,不设上限
7. ? 等价于{0,1} 相当于表达式出现0或一次
8. + d+ 数字至少出现一次
9. * 等价于{0,} 0次或任意次
3.字符边界
定义 : 匹配字符串中符合条件的位置
1. ^ 于前面的不同,是从字符串开始的地方开始匹配
2. $ 于结束的地方开始匹配
3. b 匹配一个单词的边界 即匹配位置的前后字符,不全是字母 如word空格
在d字母,前面是r是字母,后面的空格 ,不是字符
4.匹配模式
这里在Java中有相应的常量定义
分为单行模式(整个文本看成一个字符串) , 多行模式(每一行看成字符串) , 忽略大小写(不想解释)
5.分支结构
1. | 表示或操作
2. () 捕获组,捕获匹配来的内容
3. 反向引用 nnn 若有多个括号,()()(),1表示第一个,2表示第二个
EG: ([a-z]1) 将内容再重复一次 (括号的匹配以左括号为准)
4. (?:exp) 非捕获组 ,匹配到的内容不保存到内存中,所以如果使用1取不到值
6.预搜索
预搜索是对位置的匹配
1. (?=表达式) 匹配以表达式结尾的字符
2. (?!exp) 匹配不以exp结尾的字符
3. ?<=exp 匹配以exp开头的字符
7.使用正则表达式匹配电话或邮箱
其实网上能找到现成的
电话号码
010-888999 0d{2,3}-d{7,9} 最少出现7次最多出现9次
13599999999 1{35789}d{9} 第二位是35789其一,后接9位数字
邮箱
[w-]+@[a-zA-Z0-9]+(.[A-Za-z]{2,3}){1,2}
[w]+@[a-zA-Z0-9]+(.[A-Za-z]{2,3}){1,2}
w+([-+.]w+)*@w+([-.] w+)*.w+([-.]w+)*
8.在Java中使用正则表达式
使用到的类分别是Pattern
和Matcher
public static void main(String[] args) {
Pattern pattern = Pattern.compile("\w+([-+.]\w+)*@\w+([-.] \w+)*\.\w+([-.]\w+)*"); //如果是复制,Java会自动加上
Matcher matcher = pattern.matcher("1asnfjddshbhjsdbfj 09 = 16@qq.com []");
if(matcher.find()) { //匹配到了
for (int i = 0; i < matcher.groupCount(); i++) {
System.out.println(matcher.group(i));
}
}else {
System.out.println("meizhaodao");
}
}
最后
以上就是俏皮路人为你收集整理的Java日记之正则表达式(基础语法与在Java中的使用)前言一、正则表达式是什么?二、工具和基本语法的全部内容,希望文章能够帮你解决Java日记之正则表达式(基础语法与在Java中的使用)前言一、正则表达式是什么?二、工具和基本语法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复