最近在学习一些正则表达式的基本知识,通过这篇博客进行简单的复习回顾与巩固。
为什么要用正则表达式?
进行复杂的文本处理。
优势用途:
1、强大而灵活的文本处理工具
2、大部分编程语言、数据库、文本编辑器、开发环境都支持正则表达式。
开发中使用正则表达式的流程:
1、分析所要匹配的数据、写出测试用的典型数据。
2、在工具软件中进行匹配测试
3、在程序调试中同错测试的正则表达式。
在这里我推荐正则软件:RegexBuddy 4。可以直接下载绿色版。
语法:
1、普通字符:匹配与之相同的一个字符。
2、标准字符集合:能够与多种字符匹配的表达式(注意区分大小写,大写是相反的意思,即满足不同自负的都可以)。
\d 任意一个数字
\w 任意一个字母或者下划线、也就是A-Z、a-z,0-9,‘_’中的任意一个
\s 包括空格、制表符、换行符等空白字符的其中任意一个。
. 小数点可以匹配任意一个字符,如果要匹配包括“\n”在内的所有字符,一般用【\s\S】。
3、自定义字符集合:
[^369]除了369任意字符
[abc@]abc或者@
[2-8] 2-8中间的任意字符
[^a-f0-8]除了a-f0-8之间的任意字符。
注意事项:特殊字符在[]则失去特殊意义。
4、量词
{n} 表示重复 n此
{n,m} 表示出现 n – m 次,并且是贪婪模式
{n,} 至少有n次,没有上限
? 代表0-1次 \d?
`+ 表示至少一次
* 不出现或者出现任意次。
5、字符边界
零宽度。
^ 与字符串开始的地方开始匹配
$与字符串结束的地方开始匹配。
\b匹配一个单词边界。表示左右两侧相邻的不全是\w表示。
6、匹配模式:单行模式、多行模式、大小写区分模式
在一个括号包住的位置即为一次匹配模式,匹配模式后可以添加量词代表重复次数。
6、选择符和分组
分支结构:或的意思,匹配左边或者右边。a|b 满足a或者满足b的。
()捕获组: 1、在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰。
2、取匹配结果的时候
3、反向引用前面的捕获组。
([a-z]{2})\1 在匹配的字符再匹配一次
(?:expression )非捕获组。
(?:[a-z]{2}) 不会进行继续捕获。
8、预搜索(零宽断语言)
只进行子表达式的匹配,匹配内容不计入最终的匹配结果。
(? = exp)断言自身出现的额位置的后面能匹配表达式exp
(?<=exo)断言自身出现的位置的前面能匹配表达式(exp)
(?!exp)断言自身出现的位置的后面不能匹配表达式exp。
9、国内常用的正则表达式列表
10、贪婪(在没有设置时用的是贪婪模式)
\d{3,6}表示匹配3-6个数字。系统默认的是贪婪模式。
11、非贪婪模式
\d{3,6}?;量词后面跟一个?表示非贪婪模式。
JAVA中如何使用正则:

更详细的用法在以后会补充进来。