Java正则表达式
来源:互联网 发布:推背图的骗局 知乎 编辑:程序博客网 时间:2024/06/07 03:55
正则表达式:符合一定规则的表达式
作用:用于专门操作字符串
特点:用于一些特定的符号来表示一些代码操作,这样就简化书写
好处:可以简化对字符串的复杂操作
所以学习正则表达式,就是在学习一些特殊符号的使用
1.正则表达式的匹配、切割、替换操作
public class RegexDemo { //匹配,手机号段只有13xx,15xx,18xx public static void checkTel(){ String tel="13899882736"; String reg="1[358]\\d{9}"; System.out.println(tel.matches(reg)); } //切割 public static void spliteDemo(String str,String reg){ String[] arr=str.split(reg); for(String s:arr){ System.out.println(s); } } //替换 public static void replaceAllDemo(String str,String reg,String newStr){ str=str.replaceAll(reg, newStr); System.out.println(str); } public static void main(String[] args) {// checkTel(); /* spliteDemo("zhangsan lisi wangwu"," +");//按照多个空格来切割 spliteDemo("zhangsan.lisi.wangwu","\\.");//按照.来切割 spliteDemo("c:\\abc\\a.txt","\\\\"); //为了可以让规则的结果被重用,可以将规则封装成一个组,用()完成。组的出现都有编号 //从1开始。想要使用已有的组可以通过\n(n就是组的编号)的形式来获取 spliteDemo("erkktyqquizzzzzo","(.)\\1+");//按照叠词完成切割 */ /*String str="wer123122tys213112123odasd";//将字符串中的数字替换成#号 replaceAllDemo(str, "\\d{5,}", "#"); String str1="erkktyqquizzzzzo";//将重叠的字符替换成单个字母。zzzzz->z replaceAllDemo(str1, "(.)\\1+", "$1");*/ }}
2.正则表达式的第四个功能
获取:将字符串中的符合规则的子串取出
操作步骤:
- 将正则表达式封装成对象
- 将正则对象和要操作的字符串相关联
- 关联后,获取正则匹配引擎
- 通过引擎对符合规则的子串进行操作,比如取出
public class RegexDemo2 { public static void main(String[] args) { getDemo(); } public static void getDemo(){ String str="ming tian jiu yao fang jia le ,da jia. ";// str="123456";// String reg="[1-9]\\d{4,14}"; String reg="\\b[a-z]{3}\\b"; //将规则封装成对象 Pattern p=Pattern.compile(reg); //让正则对象和要作用的字符串相关联,获取匹配器对象 Matcher m=p.matcher(str);// System.out.println(m.matches());//true,其实String类中的matchers方法。用的就是Pattern和Matchers对象来完成的 while(m.find()){//将规则作用到字符串上,并进行符合规则的子串查找 System.out.println(m.group());//用于获取匹配后的结果 System.out.println(m.start()+"..."+m.end()); } }}
3.正则表达式小练习
public class RegexTest { public static void main(String[] args) {// test_1();// ipSort(); checkMail(); } /** * 需求:将下列字符串转成:我要学编程 * 到底用四种功能中的哪一种呢?或者哪几个呢? * 1.如果只想知道该字符是否对错,使用匹配 * 2.想要将已有的字符串变成另一个字符串,替换 * 3.想要按照自定的方式将字符串变成多个字符串。切割,获取规则以外的子串 * 4.想要拿到符合需求的字符串子串,获取,获取符合规则的子串 */ public static void test_1(){ String str="我我...我我...我要...要要...要要...学学学....学学编编编...编程..程.程程...程...程"; //先将.去掉 str=str.replaceAll("\\.+", ""); System.out.println(str); str=str.replaceAll("(.)\\1+", "$1"); System.out.println(str); } //ip地址进行排序 public static void ipSort(){ String ip="192.168.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30"; ip=ip.replaceAll("(\\d+)","00$1"); System.out.println(ip); ip=ip.replaceAll("0*(\\d{3})","$1"); System.out.println(ip); String[] arr=ip.split(" +"); TreeSet<String> ts=new TreeSet<>(); for(String s:arr){ ts.add(s); } for(String s:ts){ System.out.println(s.replaceAll("0*(\\d+)", "$1")); } } //对邮件地址进行校验 public static void checkMail(){ String mail="abcd12@sina.com"; String reg="[a-zA-Z0-9_]+@[a-zA_Z0-9]+(\\.[a-zA_Z]+){1,3}";//较为精确的匹配 reg="\\w+@\\w+(\\.\\w+)+";//相对不太精确的匹配 System.out.println(mail.matches(reg)); }}
0 0
- Java 正则表达式正则
- 【正则表达式】Java正则表达式
- 正则表达式 JAVA正则表达式
- 【Java】【正则表达式】正则表达式
- Java 正则表达式详解_正则表达式
- java正则表达式!正则表达式踩坑!!!
- 正则表达式工具类,正则表达式封装,Java正则表达式
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- java和正则表达式
- java正则表达式详解!
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- 开源网址
- LeetCode 做题小结
- 河工大校赛 最大子段和
- php之mysql_connet()
- 跨域详解
- Java正则表达式
- Windows终端颜色设置
- CSU 1903: Tricky数
- 51nod 1091 线段重叠
- 6.1.4.Drv/PWM(Character Device Drv)
- HDU---1829 A Bug's Life【并查集】
- 面试14之请实现一种数据结构SetOfStacks
- Js选择框脚本 移动操作select 标签中的 option 项的操作事项
- Linux——分区时出现This partition should be marked for use as an "EFI boot partition"