其他分享
首页 > 其他分享> > 再学正则与re库

再学正则与re库

作者:互联网

常用正则符号

*:前一个字符零次或多次
+:前一个字符一次或多次
?:前一个字符零次或一次

\d:匹配0-9之间的数字
.:代表任意字符
|:把左右分成两个部分,要么左边要么右边

\b:表示单词结尾

特殊字符由反斜线引导:
    \r:回车
    \n:换行符
    \t:制表符
    \\:反斜线本身

[]:选择任意一个,要么是谁要么是谁,ascll码连续用 - 连接,例如:[0-9A-z]:表示0-9任意一个数字或者A-Z任意一个大写字符
^:在[]的第一个位置,表示取反,例如:[^ab0-9]:表示任意不是a,b也不是0-9的数字

^:字符串开头匹配字符串的开头
$:匹配字符串的结尾位置
(...):括号看成整体,与 + * ? 搭配使用,表示对(...)进行重复

\s:匹配任何空白字符,等价于[\r\n\x20\t\f\v]
\w:匹配包括下划线内的单词字符,等价于[a-zA-Z0-9],也就是连续的字符串,找单词的

{...}:重复几次,里面可以切片,单独取数字等

数据表达式实例

^[A-Za-z]+$:表示由26个字母组成的字符串。【开头,[表示大小写26个字母任选一个]匹配方括号里的字符一次或多次,结尾】
^[A-Za-z0-9]+$:由26个字母和数字组成的字符串。

^-?\d+$:整数形式的字符串。【开头,-号零次或一次,匹配0-9之间数字,重复一次或多次,结尾】
^[0-9]*[1-9][0-9]*$:正整数形式的字符串。【开头,0-9的数字任意一个,重复零次或多次,1-9的数字任意一个,0-9的数字,重复零次或多次,结尾】
[1-9]\d{5}:中国境内邮政编码,6位。【1-9的数字任意一个,匹配0-9之间的数字,重复5次】

[\u4e00-\u9fa5]:匹配中文字符。
\d{3}-\d{8}|\d{4}-d{7}:国内电话号码。  093-12345678|3124-1234567

re库主要功能函数

例子:正则表达式re的search函数使用正则表达式对要匹配的字符串进行匹配,如果匹配不成功就返回None;
匹配成功就返回匹配对象。
匹配对象调用start函数匹配匹配字符串的开始位置,end函数匹配字符串的结束位置。search只匹配返回第一次的结果。

import re
s = "I am a student!"
m = re.search(r"[A-Za-z]+\b",s)
while m!=None:
    start = m.start()
    end = m.end()
    print(s[start:end])
    s = s[end:]
    m = re.search(r"[A-Za-z]+\b",s)


re库详细](https://blog.csdn.net/qq_43636709/article/details/107140529)

标签:字符,再学,匹配,数字,零次,re,正则,字符串
来源: https://blog.csdn.net/qq_43636709/article/details/115329675