正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用某种预定义的模式去匹配一类具有共同特征的字符串。主要用于处理字符串,可快速、准确的完成复杂的查找、替换等处理要求。
正则表达式功能
1。可以为想要匹配的相应字符串集指定规则
注:该字符串集可包含英文语句、e-mail地址、命令或你需要的语句
2.可使用re模块以各种方式修改或分隔字符串
3.指定正则表达式的一部分重复次数
字符匹配
普通字符:大多数一般和自身匹配,举例说a就是a
元字符:
1.可以用方括号[ ]将一个子串括起,创建一个字符集,括号内包含的字符都可匹配
例如:
1.1要指定排除字符集,可在开头添加一个 ^ 字符
例如:
表示匹配排除top和tip的字符
2.使用范围
例如:
还可组合访问。例如’[a-zA-Z0-9]'与大小写字母以及数字都匹配。
3.匹配行首
^ 匹配行首,匹配以**^后面的字符开头的字符串
注意与1.1进行区分
4.匹配行尾
匹
配
行
尾
,
匹
配
以
匹配行尾,匹配以
匹配行尾,匹配以之前的字符结束的字符串,此处需要注意末尾标点符号
5.消除元字符特殊功能
\之后紧跟一个元字符,消除元字符的特殊功能
6.(.)匹配除换行符以外的任意单个字符
‘.ython’与字符串’python’和’jython’以及’ ython’(第一个字符为空格等字符串都匹配,但要注意句点只与一个字符匹配**,所以显而易见前面的例子就不与’cpython‘等匹配
7.|匹配位于|之前或之后的字符
'python|per|‘表示二选一
8.()将位于其中的内容作为一个整体来对待
有时候不想将二选一运算符运用于整个模式,只想将其运用于模式的一部分则可使用(),例如前面的示例可改写为’p(ython|perl)’
9.指定重复次数
注意:{m,n}表示前一个字符必须匹配m到n次之间
{,n}相当于{0,n}
{m,}相当于{m,正无穷}
10.匹配位于之前的字符或子模式的0次或多次出现
*相当于{0,}
11.匹配位于+之前的字符或子模式的1次或多次出现
+相当于{1,}
12.匹配位于?之前的0个或1个字符
?相当于{0,1}