#不禾几的第一篇学习笔记
我上网看了很多关于正则表达式的文章但是可能由于自己的理解能力有限一直没看懂,然后在小破站看的奇乐编程学院的视频讲解,觉得很有用,就整理一下,如果有错误欢迎大家批评指正。
正则表达式可以匹配指定规则的字符串,可以测试正则表达式的工具网站 https://regex101.com/
一、限定符
1. ?:代表它前面的字符需要出现0次或者一次 used?:代表字符d需要出现0次或1次
2. * :匹配0个或【多】个字符。 ab*c 表示b可以没有也可以出现多次
3. +:匹配出现【1】次以上的字符 ab+c 表示b要出现【1】次以上
4. {} : 指定字符出现的次数范围 ab{2,6}c 表示b出现的次数在【2~6】次之间
5. () : 可以匹配括号里多次出现的字符 (ab)表示可以匹配多次出现的ab
二、“或”运算符 : a (cat|dog) :匹配a cat或者a dog,先匹配a ,括号代表要么是cat要么是dog。括号不可省略。不然就会变成匹配a cat或者dog 。
三、字符类:[] 方括号里面的内容代表要求匹配的字符只能取自它们,可以在方括号指定字符的范围。
1. [abc] : 代表要求匹配的字符只能取自abc
2. [a-z] : 代表所有的小写英文字符; [a-zA-Z] : 代表所有的英文字符
[a-zA-Z0-9] :代表所有的英文字符和数字
3.如果在方括号前面写一个尖号(脱字符),则代表要求匹配除了尖号后面列出的【以外】的字符
[^0-9] :代表所有的非数字字符(包括换行符)
四、元字符
1. \d : 代表数字字符;
2. \D : 代表非数字字符;
3. \w :代表单词字符(英文、数字及下划线)
4. \W :代表非单词字符
5. \s :代表空白符(包含Tab和换行符)
6. \S : 代表非空白字符
7. . : 代表任意字符(不包括换行符)
8. ^会匹配行首(比如^a之后匹配行首的a) $会匹配行尾(比如a$之后匹配行尾的a)
五、实例
颜色值匹配 : 比如这里想要匹配文本中出现的所有十六进制的RGB颜色值
先匹配#号,由于代表每一个颜色值的字符都是十六进制,因此他们只能取自于a-f之间或者大写的A-F,或者0-9之间,并且字符一定需要出现6次。最后在表达式末尾加上 \b 来代表单词字符的边界(可以避免最后一条文本也被识别成RGB颜色值)