Java正则表达式
正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(如字符 a~z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。本文简单了解一下如何使用正则表达式来操作字符串。
在正则表达式中,可以使用方括号括起来若干个字符来表示一个元字符。这个元字符可以代表方括号中的任何一个字符,例如字符串“reg="a4"” “reg="b4"”和“reg="c4"”都是与“reg="[abc]4"”匹配的字符串。
注意:在正则表达式中,“.”代表任何一个字符,因此如果想在正则表达式中使用普通意义的点字符,那么必须使用转义字符。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。本文简单了解一下如何使用正则表达式来操作字符串。
元字符
正则表达式中含有一些具有特殊意义的字符,这些特殊字符称为正则表达式的元字符。例如“\\d”表示 0~9 的任何一个数字,“\d”就是元字符。正则表达式中有多种元字符,常用的元字符如表 1 所示。元字符 | 正则表达式的写法 | 说明 |
---|---|---|
. | "." | 代表任意一个字符 |
\d | "\\d" | 代表 0~9 的任何一个数字 |
\D | "\\D" | 代表任何一个非数字字符 |
\s | "\\s" | 代表空白字符,如“\t”和”\n” |
\S | "\\S" | 代表非空白字符 |
\W | "\\W" | 代表不可用于标识符的字符 |
\p {Lower} | \\p {Lower} | 代表小写字母 {a~z} |
\p {Upper} | \\p {Upper} | 代表大写字母 {A~Z} |
\p {ASCII} | \\p {ASCII} | ASCII 字符 |
\p {Alpha} | \\p {Alpha} | 字母字符 |
\p {Digit} | \\p {Digit} | 十进制数字,即 [0~9] |
\p {Alnum} | \\p {Alnum} | 数字或字母字符 |
\p {Punct} | \\p {Punct} | 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ |
\p {Graph} | \\p {Graph} | 可见字符:[\p{Alnum}\p{Punct}] |
\p {Print} | \\p {Print} | 可打印字符:[\p{Graph}\x20] |
\p {Blank} | \\p {Blank} | 空格或制表符:[\t] |
\p {Cntrl} | \\p {Cntrl} | 控制字符:[\x00-\x1F\x7F] |
在正则表达式中,可以使用方括号括起来若干个字符来表示一个元字符。这个元字符可以代表方括号中的任何一个字符,例如字符串“reg="a4"” “reg="b4"”和“reg="c4"”都是与“reg="[abc]4"”匹配的字符串。
注意:在正则表达式中,“.”代表任何一个字符,因此如果想在正则表达式中使用普通意义的点字符,那么必须使用转义字符。
限定符
正则表达式中允许使用限定修饰符来限定元字符出现的次数,例如,“B*”表示 B 字母可以在字符串中出现零次或多次。正则表达式中可以使用多种限定符,如表 2 所示。限定符 | ? | * | + | {n} | {n,} | {n,m} |
---|---|---|---|---|---|---|
说明 | 零次或一次 | 零次或多次 | 一次或多次 | 正好出现 n 次 | 至少出现 n 次 | 出现 n~m 次 |
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算