正则表达式Regex

正则表达式(regex)

正则表达式是用来检索或是替换字符串的一种逻辑公式,它具有以下特点:

  • 灵活性、逻辑性和功能性非常强
  • 可以迅速地用极简单的方式达到字符串的复杂控制

下面介绍正则表达式的符号意义

元字符 描述
转义字符中的反斜杠,例如 换行、 回车
d 0至9中的任意数字
D 除0至9中的任意数字之外的任意字符
w 任何字母、数字或下划线字符(可以认为是匹配单词的字符)
W 除字母、数字或下划线以外的任何字符
s 空格、制表符或换行符
S 除空格、制表符或换行符之外的任何字符
( ) 将( 和 ) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 1 到9 的符号来引用。
* 匹配前面的子表达式任意次 例如 d*
+ 匹配前面的子表达式一次或多次(大于等于1次)
? 匹配前面的子表达式零次或一次
| 将两个匹配条件进行逻辑“或”(or)运算。
{} {}一般用来表示匹配的长度,比如 s{3} 表示匹配三个空格
{n} n是一个非负整数。匹配确定的n
{n,} n是一个非负整数。至少匹配n
{n,m} mn均为非负整数,其中n<=m,最少匹配n次且最多匹配m
? 当该字符紧跟在任何一个其他限制符(,+,?,{n},{n,},{n,m*})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少地匹配所搜索的字符串,而默认的贪婪模式则尽可能多地匹配所搜索的字符串。
[] []是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字
- 在[]中表示范围,相当于"至"的意思,例如[0-5]只匹配数字0到5
^ 在[]中表示"非"的意思,例如[^0-5]表示除开0至5之外的所有字符
^ 在一个正则表达式开始处使用,表示匹配的字符要以后面的字符开始,例如(Hello)表示匹配的字符要以Hello开始
$ 在一个正则表达式结束处使用,表示匹配的字符要以(前面的字符结束,例如(Hello))表示匹配的字符要以Hello结束
. 通配符,匹配除换行之外的所有字符
.* 表示任意文本,匹配任意文本

更多相关资源:

正则表达式教程(英文)

正则表达式在线测试

菜鸟教程正则表达式

原文地址:https://www.cnblogs.com/JAVA-54188/p/13770213.html