正則表達式基础及java使用
正則表達式基础
普通字符:字母,数字。汉子,下划线以及没有特殊定义的标点符号都是“普通字符”。表达式中的普通字符。在匹配一个字符串的时候,匹配与之同样的一个字符
- 简单的转义字符:
\n :代表换行符
\t :代表制表符
\\ :代表\本身
\^ ...... :代表匹配这字符本身
正則表達式语法(2)
- 标准字符集合:
可以与多种字符匹配的表达式
注意区分大写和小写,大写是相反的意思
\d :随意一个数字,0~9中的随意一个
\w:随意一个字母或者下划线或者汉字。也就是A~Z,a~z,0~9中的随意一个
\s :包含空格,制表符。换行符等空白符中的随意一个。
. :小数点能够匹配随意一个字符
正則表達式语法(3)
- 自己定义字符集合:
[ ]方括号匹配方式。可以匹配方括号里随意一个字符
[ab5@]: 匹配方括号里的随意一个字符
[^abc]: 匹配除了abc以外的随意一个字符
[f-k]: 匹配“f”-“k”之间的随意一个字符
[^A-F0-3]: 匹配非A-F和非0-3的随意一个字符
正則表達式语法(4)
- 修饰匹配次数的特殊符号
{n}: 表达式反复n次
{m,n}: 表达式至少反复m次。最多反复n次
{m,}: 表达式至少反复m次
?: 匹配表达式0次或者1次。相当于{0,1}
+ : 表达式至少出现1次。相当于{1,}
* : 表达式不出现或者出现随意次,相当于{0,}
匹配次数中的贪婪模式,(匹配字符愈多愈好。默认)
匹配次数中的非贪婪模式(匹配字符越少越好。修饰匹配次数的特殊符号后再加上一个“?“号)。样例:\d{2,4}?,这样就将模式改为非贪婪
正則表達式语法(5)
- 字符边界(本组标记匹配的不是字符而是位置,符合某种条件的位置)
^: 与字符串開始的位置匹配(以一行来算)
$: 与字符串结束的地方匹配
\b: 匹配单词边界 //比方boy\b 则在boy右边不是边界的不匹配
在java中使用正則表達式及经常使用函数
public class TestRegex { public static void main(String []args) { //Pattern p = Pattern.compile("^\\d{4}"); //在java中的反斜杠要用两个前面一个转义,由于\d中的\做反义用 Pattern p = Pattern.compile("(\\d{4})([a-z]{2})"); Matcher m = p.matcher("asdfsadfsafd2342314asdfsadf2342asdfsaf"); System.out.println(m.matches()); //匹配整个目标字符串 System.out.println(m.find()); //查找字符串 List<String> list = new ArrayList<String>(); //用来存储找到的group while(m.find()) //m.find()找到一个后就去找下一个了 { System.out.println(m.group()); //group(),group(0)的作用是一样的 System.out.println(m.group(0)); System.out.println(m.group(1)); System.out.println(m.group(2)); //假设写3的话会超出范围 list.add(m.group()); } String []str = "aa33fdf55cc".split("\\d{2}"); //依照两个整数来切分 String str2 ="asd2dsfdfds".replaceAll("\\ds", "**"); //将ds替换掉,生成新的字符串。由于前面是常量不可变 System.out.println("asdfsdf".matches("\\w+")); //匹配字符串 } }
相关文章
- (基础篇 走进javaNIO)第一章-java的i/o演进之路
- java基础——“”equals“”与 “”==“” 的区别
- java基础—统计一个字符串中各个字符出现的次数
- Java核心技术卷I基础知识2.5 构建并运行applet
- JAVA 8:Lambdas表达式初体验
- JAVA MAIL 发送邮件(SSL加密方式,TSL加密方式)
- unix-socket-implementation-for-java
- JAVA基础--Java枚举+位操作,巧妙判断是否设置
- 都 8 月份了!猛肝这份 Java 面试通关宝典, 顺利拿到一线大厂 offer 不是梦~
- 第二十三节:Java语言基础-详细讲解函数与数组
- 《Java 2D游戏编程入门》—— 2.3 处理鼠标输入
- Android JNI入门第二篇——Java参数类型与本地参数类型对照
- 通过Java反射来理解泛型的本质
- Java 8后的首个长期支持版本Java 11
- java基础的第二轮快速学习!day06
- Java基础篇:多重继承的实现
- 如何夯实(Java)编程基础,并深入学习和提高
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- java使用mongoDB和freemarker注意事项
- 2014-5-22 java.lang.OutOfMemoryError: Java heap space的一次诊断
- java基础—综合练习
- How to Read, Write XLSX File in Java - Apach POI Example---reference
- Java找最高分最低分和计算器案例实现
- Java新手入门200例123之通过Java反射机制得到类的属性:继承的接口、父类、函数信息、成员信息、类型等