【正则表达式】【第一节】【正则表达式基本知识】

正则表达式是一种文本模式,包括普通字符和特殊字符(称为“元字符”)

普通字符:a-z之间的字母

元字符:

^:^会匹配行或者字符串的起始位置,或者文档的起始位置

$:$会匹配行或者字符串的结尾

被匹配的字符必须是以This开头有空格也不行,必须以Regex结尾,也不能有空格或者其他字符

:匹配单词边界,如“This is Regex”匹配单独的单词“is”正则就要写成“is

d:匹配数字,0737-5686123,正则:^0ddd-ddddddd

w”:匹配字母,数字,下划线,如“a2344_yya”,正则为“w+”,这里的“+”字符为一个量词代表重复的次数

s”:匹配空格,例如“a b c”正则“wswsw”一个字符后跟一个空格,如有多个空格直接写成“s+

.”:匹配除了换行符以外的任何字符

注意:

*表示任意个字符(包括0个)

+表示至少一个字符

?表示0个或1个字符

{n}表示n个字符

{n,}表示重复n次或更多次

{n,m}b表示nm个字符

通过在 *+ 或 ? 限定符之后放置 ?,该表达式从"贪婪"表达式转换为"非贪婪"表达式或者最小匹配

d{3}s+d{3,8}

d{3}匹配3个数字,例如“010

s匹配一个空格,s+表示至少有一个空格,例如“ ”

d{3,8}表示3-8个数字,例如“122222

-”是特殊字符,在正则表达式中,要用“”转义,“000-12345”的正则是“d{3}-d{3-8}

正则进阶

要做更精确的匹配,可以用[ ]表示范围,比如:

[0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线

[a-zA-Z\_][0-9a-zA-Z\_]*表示匹配由字母或者下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串

A|B 可以匹配A或者B,所以(p|Python可以匹配“python”或者“Python

由于Python中的字符串本身也用转义,因此强烈建议使用Pythonr前缀,就不用考虑转义问题啦

正则表达式的匹配方法

test=“用户输入的字符串”
if re.match(r“正则表达式”,test):
    Print(“OK”)
else:
    Print(“failed”)

正则表达式的用途

1.re.match进行判断

test="010-11112abc 123"
base=r"d{3}-d{3,8}w{3}sd{3}"
if re.match(base,test):
     print("OK")
else:
     print("Failed")

2.re.split切割字符串

传统方法切割字符

value=("a  b    c").split(" ")

print(value)    #['a', '', 'b', '', '', '', 'c']

如上所示,不能自动识别空格

使用re.split方法

value=re.split(r"[s\,]+","a,b c")

print(value)    #将以一个空格或“,”号的分开,输出list格式

原文地址:https://www.cnblogs.com/yuhuang/p/12851594.html