正则表达式

2023-12-14 06:55:39


参考1: https://www.runoob.com/java/java-regular-expressions.html
参考2: https://www.runoob.com/regexp/regexp-syntax.html

常见格式

/AAA/BBB

AAA部分是匹配模式,内容是表达式的主体
BBB部分是匹配选项,用来指定匹配的策略

开头与结尾

^ 表示开头
$ 表示结尾

字符

a-z 表示小写字符a-z
A-Z 同理表示大写A~Z 
0-9 表示数字0-9

[ ] 匹配括号内的任意一个字符。例如,[abc] 匹配字符 "a""b""c"[^ ] 匹配除了括号内的字符以外的任意一个字符。例如,[^abc] 匹配除了字符 "a""b""c" 以外的任意字符。

量词 & 限定符

? 表示可以出现或者不出现,可01
* 表示0个或者多个字符,0到正无穷
+ 表示至少出现一次,1到正无穷

*+ 是贪婪的,会尽可能多匹配,当他们后面是问号?时候才会非贪婪。

{n} 匹配前面的模式恰好 n 次。
{n,} 匹配前面的模式至少 n 次。
{n,m} 匹配前面的模式至少 n 次且不超过 m 次。

分组

( ) 用于分组和捕获子表达式。表示一个整体
(?: ) 用于分组但不捕获子表达式。

(ab)表示ab两个字母组成一个整体,两个要一起出现
(ab)+表示多次匹配ab

| 表示或
(cat | dog) 表示可以是 cat 或者 dog
[abc]表示字符只可以来自abc这三个之中,不限制顺序

^表示不能是什么,表示非
^[ 0-9 ]表示不能是0-9,及不能是数字

转义字符

\d 数字字符
\w 单词字符 = 字母,数字,下划线
\s 空格,tab,换行
\D 非数字
\W 非\w
\S 非\s

\n 换行
\r 回车
\f 换页

. 表示任意字符,但不可以是换行符号
^ 表示开头 $ 表示结尾

\b 单词的开头或者结尾,匹配一个单词边界,即字与空格间的位置。
\B 不是开头与结尾

常用修饰符

修饰符描述信息
iinsensitive,忽略大小写
mmulti line,多行模式。使得^和$同时锚定所有行的起始和结尾位置。
gglobal,全局模式。查找所有匹配项。
uunicode,使用unicode字符集。
ssingle line,让.可以匹配任意字符,包括换行符。

文章来源:https://blog.csdn.net/qq_44627608/article/details/134912564
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。