手记

Python学习正则表达式笔记1

什么是正则表达式

是由一些字符和特殊符号组成的字符串

能按照某种模式匹配一系列有相似特征的字符串

正则表达式中的符号

lierral 字面值

| 或

.  匹配任意字符(除\n之外)

^ 匹配字符串起始部分

$ 匹配字符串终止部分

* 匹配0次或者多次前面出现的正则表达式

+匹配1次或者多次前面出现的正则表达式

?匹配0次或者1次前面出现的正则表达式

{N}匹配前面N次出现的正则表达式

{M,N}匹配前面M-N次出现的正则表达式,最大化优先

{...} 匹配来自字符集的任意单一字符

{...x-y..} 匹配x-y范围中的任意字符

[^...] 不匹配此字符集合中传的任意一个字符,包括某一范围的字符

(*|+|?|{})? 用于匹配上面频繁出现/重复出现符号的非贪婪版本

(...) 匹配封闭的正则表达式,然后另存为子组

正则表达中的特色字符

\d 匹配任意十进制数字 与 \D相反

\w 匹配任意字母数字字符

\s 匹配任意空格字符

\b 匹配任何单词边界

\N 匹配已经保存的子组N

\c 逐字匹配任何特殊字符 c

\A(\Z)匹配字符串的起始(结束)

正则表达式中的扩展表示法

使用正则表达式

简单匹配 abc

多个匹配模式 abc|123

匹配任意字符(.)

a+bc a*bc 指符号前面的a出现的次数
[...]匹配字符集合中任意单一字符

匹配同类型

\d匹配的是数字字符,小数无法匹配

空格字符 \n\t\s\v\f

^ $ 必须是整个字符串的开头

匹配特殊字符

用\进行转义  \\ \. \^

指定匹配的选项  []指定集合

正则表达式分组

重复一个字符串时

使用()进行分组,使用(?<word>\w+)指定组名

从左向右,以分组的左括号为标志,第一个出现的分组的组号1,第二个为2,以此类推

使用\1,\2反向引用   \k{name}

贪婪模式与非贪念模式

贪婪匹配:在整个表达式匹配成功的前提下,尽可能多的匹配      默认

非贪婪匹配:在整个表达式匹配成功的前提下,尽可能少的匹配

在需要匹配的中加上"?" 即为非贪婪模式

正则表达式应用

身份证号码匹配:(\d{6})(\d{4})((\d{2})(\d{2}))(\d{2})(\d{1})([0-9]|x)

电子邮箱:[a-zA-z0-9_-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,5})







0人推荐
随时随地看视频
慕课网APP