Python入门学习_04_正则表达式基本用法

正则表达式是为了表示字符串之间内在规律,类似于数学中的函数表达式

使用的python 三方包为re包,需要提前进行安装。

目的是实现普通函数不能实现的查找(findall)、替换(replace)及分割(split)。

############################################################

git上有很好的学习及练习网站,请学习完之后认真练习,git网址

网上同样也有很好的学习经验,请参考知乎网友分享的经验

############################################################

常见函数的表示方法为:

A. 查找 findall ,适用无法通过切片将字符串的子串返回。

findall(pattern,string,flags=0)

其中pattern是表达式,string是操作的字符串,flags指定匹配模式,re.I 制定的模式表示不区分大小写

 

B. 替换 replace,借助于replace方法无法完成或非固定值或非固定位置值的替换

sub(pattern,repl,string,count=0,flags=0)

其中其他参数一样,count是指替换的次数。

 

C. 分割split,借助于spilt方法无法按照多种值实现字符串的分割

split(pattern,string,maxsplit=0,flags=0)

maxsplit是指切割次数

 

万能匹配符号   .*? 

.代表任意符号,*代表前一个字符匹配0次或以上, 最后一个问号?是防止贪婪式匹配,一直到后面的引号出现为止。  

.*?可以解决大部分问题。

######################################以下为重要知识点#######################################

正则表达式的函数中的pattern 表示元素有9种,按照匹配次数分为一次匹配,无限次匹配和有限次匹配

  • 一次匹配:原字符    英文状态的句号点.    转义符 \     英文状态的[]     英文状态的()
  • 无限次匹配:英文状态的     加号+      乘号*
  • 有限次数匹配:英文状态的{}

匹配一次

a.原字符,匹配字符串内部的原始子串

b.英文状态的句号点. :指代任何字符(数字、字母、标点符号、汉字等),但除了换行符\n

   在任意字符前加上\ 转义符,代表它原来的意思

c.反斜杠:转义符,用于转换含义的符号。

\n:指代换行,enter

\t:指代Tab制表符, 缩一格

\d: 指代0~9中的任意数字

\s: 指代任意一种空白(如空格space、Tab换行 \t、enter换行\n 等)

\w:指代字母、数字和下划线中的任意一种  一共63种,(52个字母,10个数字,下划线)

\.:指代句号点本身

\\ :只表示斜杠本身

 

d.英文状态的中括号[ ]

指代字符集和,当需要特定字符匹配时,可以选择中括号。如这个字符只能是5678组成,则使用[5678]

[ ]内部元素之间千万不能使用逗号隔开,如[a-zA-Z0-9],之间不能使用逗号

e.英文状态的圆括号()

指代特定内容的截取,如取age(‘\d’)

 

无限次的次数匹配--之前只能匹配一个字符

f.英文状态的问号?

表示匹配前一个字符的0次或1次,只有两个机会。

g.加号+

表示匹配前一个字符1次及以上

h.星号*

表示匹配前一个字符0次及以上

 

匹配次数为有限次

i.英文状态的大括号{ },固定匹配次数

表示匹配前一个字符特定的次数或范围。

{m}  匹配前一个字符m次

{m,} 匹配前一个字符至少m次

{m,n}  匹配前一个字符m~n次

{,n} 匹配前一个字符之多n次

 

万能匹配符号   .*? 

.代表任意符号,*代表匹配0次或以上, 最后一个问号?是防止贪婪式匹配,一直到后面的引号出现为止。  

.*? 可以解决大部分问题。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值