正则表达式——(2) 匹配、切割、替换、获取
目录
1、匹配功能
2、切割功能
3、替换
4、获取
1、匹配功能
需求:验证手机号码是否合法
其实用的就是String类中matches方法
/*** 演示匹配* 匹配手机号是否正确*/public static void functionDemo_1() {String tel="15287648890";//正则表达式 第一位肯定是1 第二位是 345789 剩下的是0-9中的任意数字String rege="1[345789][0-9]{9}";//校验boolean matches = tel.matches(rege);System.out.println(tel+":"+matches);}
String tel="05287648890";
2、切割功能
其实使用的就是String类中的split方法。
需求:切割名字输出
分析:名字之间有很多连续的字符串,且第一个间隔的字符串与第二个间隔的字符不相同。
1、那么就把第一个间隔的字符的第一个字符定义为一组,是任意的。组用"( )"括号表示 "."表示任意。
2、在正则中会根据"( )"自动编号分组,所以第一个字符的编号为1,后面的需要沿用1组。出现一次或者多次。可以用正则"X+",X代表匹配的内容。
3、1需要被转义成组编号,所以需要加"\1","\1"在字符串中又要转义,所以最终的形式是"\\1+"
编码:
/*** 切割* 组* 在表达式 ((A)(B(C))) 中,存在四个这样的组:* 1组 ((A)(B(C)))* 2组 \A* 3组 (B(C))* 4组 (C)*/public static void functionDemo_2() {String str = "zhangsanttttxiaoqiangmmmmmmzhaoliu";//字符的切割方法split() 里面传入正则表达式String[] names = str.split("(.)\\1+");for (String name : names) {System.out.println(name);}}
3、替换
1、将重复的字符使用#替换。
2、重复字符只输出一次。
3、隐藏指定的数字字符
public static void functionDemo_3() {String str = "zhangsanttttxiaoqiangmmmmmmzhaoliu";String str1 = "zhangsanttttxiaoqiangmmmmmmzhaoliu";//1、将字符串中重复的字符用#替换str = str.replaceAll("(.)\\1+", "#");System.out.println(str);//zhangsan#xiaoqiang#zhaoliu//$可以在其他参数中对前一个参数中已有的正则的规则获取// 2、获取重复字符,重复字符只输出一次String tow= str1.replaceAll("(.)\\1+", "$1");System.out.println(tow);//zhangsantxiaoqiangmzhaoliu//3、隐藏指定的数字字符String tel="15288544569";//正则分组,按照分组输出tel = tel.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");System.out.println(tel);}
4、获取
1、先将正则表达式封装成对象
2、通过正则对象的matcher方法字符串相关联。获取要对字符串操作的匹配器对象Matcher
3、通过Matcher匹配器对象的方法对字符串进行操作。
/*** 获取* 将正则规则进行对象的封装。* Pattern p = Pattern.compile("a*b");* //通过正则对象的matcher方法字符串相关联。获取要对字符串操作的匹配器对象Matcher .* Matcher m = p.matcher("aaaaab");* //通过Matcher匹配器对象的方法对字符串进行操作。* boolean b = m.matches();*/public static void functionDemo_4() {String str = "da jia hao,ming tian bu fang jia!";/***[a-z]{3} 获取连续三个字母的单词* \\b拥有单词边界*/String regex = "\\b[a-z]{3}\\b";//1,将正则封装成对象。Pattern p = Pattern.compile(regex);//2, 通过正则对象获取匹配器对象。Matcher m = p.matcher(str);//使用Matcher对象的方法对字符串进行操作。//既然要获取三个字母组成的单词//查找。 find();System.out.println(str);while(m.find()){System.out.println(m.group());//获取匹配的子序列//获取单词的起始位置System.out.println(m.start()+":"+m.end());}}
正则表达式——(2) 匹配、切割、替换、获取相关推荐
- java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)
import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...
- 正则表达式以及正则表达式在字符串的替换、切割、获取中的应用
正则:正,乃合于法则也:则,规则也.正则,正规,常规是也. 元字符: Java中正则表达式含有一些具有特殊意义字符的字符串,这些字符成为正则表达式的元字符. 例如:\\dcat中的\\d就是有特殊意义 ...
- 实用正则表达式匹配和替换
原文地址为: 实用正则表达式匹配和替换 正则表达式非常有用,查找.匹配.处理字符串.替换和转换字符串,输入输出等.而且各种语言都支持,例如.NET正则库,JDK正则包, Perl, JavaScrip ...
- 一个可以使用多个正则表达式进行多次尝试匹配、替换或提取的Excel VBA自定义函数(UFD)...
该自定义函数可使用多个正则表达式对目标单元格进行多次匹配尝试,如匹配成功,将停止尝试匹配其他正则表达式,并且使用该正则表达式相对应的替换表达式进行替换,返回替换结果. 您可以直接下载包含该函数代码的X ...
- idea 使用正则表达式 进行匹配替换
关于正则表达式 可以参考相应的笔记 另外 如果要提取正则表达式中匹配到的内容,使用$1 - $... 按顺序取(第一个表达式 到 第N个表达式匹配到的数据), 这点和linux正则获取的方式是一样的
- java 正则表达式匹配冒号_java 获取冒号后面的参数(正则)实现代码
我就废话不多说了,大家还是直接看代码吧~ String regEx=":[\S]+"; String sql=" select * from a where id=:id ...
- excel中用正则匹配_Excel利用正则表达式匹配和替换内容
近期使用Excel比较多,有一些匹配和替换的内容.平常涉及的比较简单,也就使用If或者VLOOKUP之类的函数.这次使用到正则表达式和VBA,在此记录一下,以防忘记. 打开文件一定要选择EXCEL打开 ...
- python 字符串的搜索匹配与替换(详细)
文章目录 Python 内的正则使用基础 正则修饰符的使用 python 里的反向引用.捕获 需求:单次匹配字符串 `re.match()` 函数 `re.fullmatch()` 函数 `re.se ...
- linux绑定中文域名,linux shell正则表达式如何匹配域名(包含中文域名)
linux shell正则表达式如何匹配域名(包含中文) shell匹配域名 1. 匹配示例 最近的项目需要校验一下域名格式匹配,百度一下,说明如下: DNS规定,域名中的标号都由英文字母和数字组成, ...
- go 正则表达式分组匹配_Python正则表达式的7个使用典范(推荐)
概述 作为一个概念而言,正则表达式对于Python来说并不是独有的.但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别. 将介绍Python中对字符串进行搜索和查找的一些方法,讨论如 ...
最新文章
- Linux下多文件链接执行及调试技术
- 试图执行系统不支持的操作
- 【数据分析】Python :知乎数据清洗整理和结论研究
- c++中同名函数的三个不同术语(c++细节篇八)
- 【算法基础】十大经典排序算法(动图)
- 乐鑫代理启明云端分享:用ESP32单片机控制LED教程示例
- 将字符串分割为指定长度的子字符串
- mysql 自动生成mapper_自动生成实体类、Mapper、Mapper.xml文件
- python数据可视化是什么_Python数据分析:可视化
- 机器学习-吴恩达-笔记-6-应用机器学习的建议
- HttpModuel
- python 汽车行业数据库_python3+Neo4j+flask,汽车行业知识图谱项目实战
- git reset/git checkout./撤销操作
- linux打补丁教程,Linux下patch打补丁命令
- VMware虚拟机安装win10卡顿优化
- Zlib文件压缩和解压
- 工商服务代理行业解决方案
- Unity EmbeddedBrowser浏览器插件事件通讯
- Python Appium自动化测试 连接模拟器启动淘宝APP
- 计算机专业大专考试题,计算机大专考试试题1.doc
热门文章
- 偷看了隔壁老王的文章,发现String拼接另有天地
- 全球首本 | 系统介绍深度学习计算机视觉方法
- 暴走P图APP隐私政策
- Vue3路由,VueX3,Vue3生命周期函数
- prisma orm_如何使用Node.js和Prisma构建GraphQL服务器
- Android屏幕共享-传输图片
- 有关javaSE下载时,环境配置path不成功,在cmd命令中java,javac,java -version出现不是内部或外部命令的现象处理
- 灵活无成本的ITSM系统|ServiceHot ITSOM
- mac的spotlight搜索系统文件
- Lcd ST7789S寄存器初始化配置