模块的的作用主要是用于字符串和文本处理,查找,搜索,替换等
复习一下基本的正则表达式吧
.:匹配除了换行符以为的任意单个字符
*:匹配任意字符,一个,零个,多个都能匹配得到 俗称贪婪模式
+:匹配位于+之前的一个或者多个字符
|:匹配位于|之前或者之后的字符
^:匹配行首
$:匹配行尾
?:匹配位于?之前的零个或者一个字符,不匹配多个字符
\:表示 \ 之后的为转义字符
[]:匹配[]之中的任意单个字符,[0-9]表示匹配0到9任意一个数字
():将位于()之内的的内容当作一个整体
{}:按{}中的次数进行匹配,100[0-9]{3}表示在100之后任意匹配一个3位数(100-999)
python中以\开头的元字符:
特殊序列符号
|
意义 |
\A
|
只在字符串开始进行匹配 |
\Z
|
只在字符串结尾进行匹配 |
\b
|
匹配位于开始或结尾的空字符串 |
\B
|
匹配不位于开始或结尾的空字符串 |
\d
|
相当于[0-9] |
\D
|
相当于[^0-9] |
\s
|
匹配任意空白字符:[\t\n\r\r\v] |
\S
|
匹配任意非空白字符: [^\t\n\r\r\v ] |
\w
|
匹配任意数字和字母:[a-zA-Z0-9] |
\W
|
匹配任意非数字和字母:[^a-zA-Z0-9] |
正则表达式语法表
语法 | 意义 | 说明 |
"." | 任意字符 |
|
"^" | 字符串开始 | '^hello'匹配'helloworld '而不匹配'aaaahellobbb ' |
"$" | 字符串结尾 | 与上同理 |
"*"
|
0 个或多个字符
(贪婪匹配)
|
<*>匹配 |
"+"
|
1 个或多个字符
(贪婪匹配
)
|
与上同理
|
"?"
|
0 个或多个字符
(贪婪匹配
)
|
与上同理
|
*?,+?,??
|
以上三个取第一个匹配结果(非贪婪匹配 ) |
<*>匹配
|
{m,n}
|
对于前一个字符重复m到n次,{m}亦可
|
a{6}匹配6个a、a{2,4 }匹配2到4个a |
{m,n}?
|
对于前一个字符重复m到n次,并取尽可能少
|
‘aaaaaa '中a{2,4}只会匹配2个 |
"\\"
|
特殊字符转义或者特殊序列 |
|
[]
|
表示一个字符集 | [0-9]、[a-z ]、[A-Z ]、[^0] |
"|"
|
或 | A|B,或运算 |
(...)
|
匹配括号中任意表达式 |
|
(?#...)
|
注释,可忽略 |
|
(?=...)
|
Matches if ... matches next, but doesn't consume the string.
|
'(?=test)' 在hellotest中匹配hello |
(?!...)
|
Matches if ... doesn't match next.
|
'(?!=test)'
若hello后面不为test,匹配hello
|
(?<=...)
|
Matches if preceded by ... (must be fixed length).
|
'(?<=hello
)test'
在hellotest中匹配test
|
(? 8126). Changing some columns to TEXT or BLOB aigo column |