正则表达式课程笔记
正则表达式是什么?
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
正则表达式语法
普通字符
字母,数字,汉字,下划线,以及没有特殊定义的标点符号,都是“普通字符”,表达式中的的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。
a 匹配a
普匹配普
转义字符
\t匹配制表
\n匹配换行符
\匹配本身
!,@,#,等符号表示匹配这些字符本身
标准字符集合
大写是相反的意思
能够与多种字符匹配的表达式
\d 匹配任意一个数字,0-9
\w 匹配任意一个数字或字母或下划线
\S 匹配空格,制表,换行符等空白字符
. 小数点可以匹配任意一个字符
自定义标准字符集合
[ ]方括号匹配方式,能够匹配方括号中任意一个字符
[abcd5!] 匹配“a”或“b”或“c”或“d”或“5”或“!”
[a-f]匹配“a”到“f” 的任意字符
[a-f0-7]匹配“a”到"f"或“0"到”7“
[^a-F]表示匹配a-f除外的字符
修饰匹配次数的特殊符号
{N}表达式重复n次
{M,N}表达式至少重复m次,最多重复n次
{M,}表达式至少重复m次
?匹配表达式0次或者相当于{0,1}
+表达式至少出现1次,相当于{1,}
*表达式匹配相当于{0,},不出现或任意次
贪婪模式
\d[1,4]
匹配的字符越多越好,默认
非贪婪模式
\d[1,4]?
匹配的字符越少越好
- 正则表达式匹配模式 ,
- IGNORECASE 忽略大小写模式
- 匹配时忽略大小模式
- 默认情况下,正则表达式是要区分大小写的
- SINGLELINE 单行模式
- 整个文本看作一个字符串,只有一个头,一个结尾。
- 使小数点"."可以匹配包含换行符(\N)在内的任意字符。
- MULTILNE多行模式
- 每行都是一个字符串,都有开头和结尾
10.在指定了,MULTILNE之后,如果需要仅匹配字符串开始和结束位置,可以使用使用\A和、在\z
字符边界(位置关系)
^ab匹配开始
ab$匹配结尾
boy\b 不全匹配
\bboy\b 匹配boy