1、 正则表达式,是对语言无关的,任何语言都有实现
2、 正则表达式是对文本、字符串进行处理的
3、 通配符
1> “.”除\n任意的单个字符
比如: a.b 可以匹配→a*b,axb,a+b等,而asdb不行,’.’只能匹配任意的单个字符。
2> “[]”匹配[]中的任意一个字符
比如:a[sdfg]b 可以匹配asb,adb,afb,agb其他的都不行
3> “^”取反的意思
比如[^a-zA-Z0-9]可以匹配除了a-z,A-Z,0-9以外的任何一个字符
4> “|”或的意思
比如:Z|hello 表示可以匹配Z或者hello,或的优先级很低最后才能匹配
(Z|h)ello 表示匹配Zello或hello
5> “()” 可以改变优先级,比如上面的例子提取组
4、 限定符
1> “*”匹配前面的表达式出现0次或多次
比如:abc* 可以匹配:abc,abcc,ab,abccccc等就是c可以出现0次或多次
(abc)* 可以匹配:abcabc,abc,abcabcabc等,一次或多次abc
2> “+”匹配前面的表达式至少出现一次
比如:abc+ 表示c至少出现一次,abc,abccccc等,不能匹配ab
3> “?”表示前面的表达式只出现一次或者0次
比如:abc? 只能匹配 ab,abc
4> “{n}”限定前面的表达式只能出现n次
比如:abc{3} 只能匹配abccc
{n,m}匹配前面的表达式,出现次数至少n次,最多m次
比如:abc{3,6} 前面的c出现3-6次,匹配abccc,abcccc,abccccc,abcccccc
{n,}表示前面的表达式至少出现n次,没有上限
比如:abc{4,}表示c至少出现4次
5、 特殊元字符
1> “^xx”表示必须以xx开头
比如:^abc.x 必须是以abc.x开头,”.”可以替换为任意单个字符 abc%x等
2> “abc$”表示必须是以abc结尾的
比如:abc$ 能匹配assffafaaddddabc,xsabc等以abc结尾的表达式
3> “^abc$”只能匹配abc
6、 元字符简写
1> “\d”表示[0-9]
比如:a[0-9]{2}b与a\d{2}b意义完全一样:,a与b之间出现两个0-9的字符
2> “\D”表示[^0-9]除了0-9的任意字符
3> “\s”表示不可打印的空白符
比如:空格、回车等
4> “\S”表示非空白符
5> “\w”表示能组成单词的字符
比如:数字、字母、汉字、下划线除了%&#@!等字符[0-9a-zA-Z_汉字]
6> “\W”表示[^\w]除了\w表示的以外的任意字符