0.引入
计算机需要处理字符串,首先要用某种语言或表达式或数据类等多种方式来描述这些字符串的规则。 --->正则表达式
正则表达式是用来描述某种规则字符串的表达式。
1.正则表达式的组成
正则表达式就是用来描述某种规则字符串的表达式。
正则表达式是脱离了具体语言的一些规则,但是大部分程序设计语言都支持正则表达式。
2.正则表达式的规则
正则表达式也叫匹配模式(pattern),是由一组特定含义的字符串组成,通常用于匹配和替换文本。由一些字符去描述某种规则,因此在正则表达式有两种字符。
1)元字符
不代表自己,代表某种特定的字符或者多个字符。
元字符 --> 普通字符 需要使用\进行转义。
2)普通字符
仅仅代表自己。
eg:'a'
3.元字符
1.匹配单个字符
. 匹配任意个单个字符(英文字符、数字)。
eg:.c
正则表达式,描述的字符串:由两个字符构成并且最后一个字符为c的字符串。
[ ] 字符组,从[]内任选一个字符。虽然由多个字符构成,但是它只能匹配单个字符,并且字符组能够匹配的单个字符,都在[]内列举出来。
[]仅仅只匹配一个字符
[]字符组内也有一个元字符 -
-在[]内用于来凝结ASCII码连续的字符 “到”
eg:[0-9a-fA-F]
[0-9] 代表一个数字字符
[a-zA-Z] 代表一个大写/小写字母
[0123456789abcdefABCDEF]这个正则表达式描述的字符串,由一个字符构成,并且这个字符只能是0123456789abcdefABCDEF里面任意一个
[^] 排除字符组,匹配单个字符,匹配除了[]内以外的单个字符。
\d digital匹配单个十进制数字字符 \d <=> [0-9]
\D 非digital匹配单个非十进制数字字符 \D<==>[^0-9]
\w word匹配字母,数字,_ \w <==>[a-zA-Z_0-9]、
\W 匹配非字母,数字,_ \W <==>[^a-zA-Z_0-9]
\s 匹配空白字符 \s <==> [\f\n\r\t\v]
\r回车符
\v垂直制表符
\f换页符
\S 匹配非空白字符 \S <==> [^\f\n\r\t\v]
2.匹配多个字符的元字符
+ 匹配一个或多个先前的字符(或模式)
* 匹配0个或者多个先前字符(模式)
? 匹配0个或1个先前字符(或模式)
{数字} 匹配固定数目的先前数字(或模式)
{最小数目,最大数目} 匹配至少“最小数目”,至多“最大数目”的先前数字(模式)
{最小数目,} 匹配至少"最小数目",上不封顶的先前模式(字符)。
( ) 作为一个整体,子模式
( | ) 作为一个二选一的整体,子模式
转义元字符:代表元字符本身的那个字符
\元字符 ==>代表字符本身的那个字符含义
| 在多个模式中选择一个
^ 匹配行首
$ 匹配行尾