正则表达式(基础知识)

基本的正则表达式规则:
1、 \d 匹配的是0-9区间的一个数字 例子:str=‘千万1232’
2、 + 匹配前面重复字符一次或者多次
3、 * 匹配前面出现字符0次或者多次
3.1、’+‘与’'的区别:
例:‘ab+’:则表达的是: ab两个元素都要包括必须出现一次啊,而’ab
’则表示的是:ab中获取a最早出现的位置, b出现的次数可以是0次 例如;ab出现两次以上就可以抓取到第一的位置了

4、? 重复前面一个匹配字符零次获取一次 例如:abbca 正则 = ‘ab?’,其中b只重复一次
5、. 代表任何一个字符,但是没有特别声明时不代表字符’\n’
6、| 代表把左右分成两个部分: ‘满足其中之一就可以了’
7、\ 例如:’\r’、’\n’, ‘\t’, ‘\’,分别表示回车。换行、制表符号 、反斜线自身本身.
8、\b 表示单词结尾,单词结尾包括各种空白字符或者字符串结尾。
9、[]中的字符是任意选择一个,如果字符是SAcll码中连续的一组,那么可以使用’-'符号链接,
例如[0-9]表示的是0-9中其中的一个数字。
10、^ 出现在[^0-9]表示除了0-9的其他的字母和数字
11、\s 匹配的任何空白字符,等价"[\f\t\v\r\x20]"
12、\w 匹配包括下划线在内的单词字符,等价于[a-zA-Z0-0-9_]
13、^ad 以ad开头 13.2 $ad 以ad结尾
14、使用括号(…)…看做一个为一个整体;经常与+,*,?,的连续使用,对(…)部分进行重复。

例子
search:
#search()函数:会在整个字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None
findall

返回所有满足匹配条件的结果,放在列表里:

#例子:
import re
str1=‘千万1232’ #对象
reg = ‘\d+’ #正则
result = re.findall(reg,str1) ==> [‘1232’]

#例子2:
import re
str1= ‘abcabc’ #对象
reg = ‘ab+’ #正则
result = re.search(reg,str1)
结果;==> <_sre.SRE_Match object; span=(2, 4), match=‘ab’>

reg = ‘ab*’
结果:==> <_sre.SRE_Match object; span=(0, 1), match=‘a’>

例子5:

import re
str1= ‘akbcabc’ #对象
reg = 'ak|ab #正则
result = re.search(reg,str1) #其中.为k
==> <_sre.SRE_Match object; span=(0, 3), match=‘akb’>

例子6:

import re
str1= ‘akbcabc’ #对象
reg = 'a.b #正则
result = re.search(reg,str1) #其中.为k
==> <_sre.SRE_Match object; span=(0, 2), match=‘ak’>

例子7:
import re
str1= ‘a\nkbcabc’ #对象
reg = 'a\nk #正则
result = re.search(reg,str1) #其中==> <_sre.SRE_Match object; span=(0, 4), match=‘ak’>
print(result.group())
==>a
k

#例子8:
import re
str1= ‘hello wrold’ #对象
reg = r’hello\b’ #正则== ‘hello\d’
result = re.search(reg,str1) #其中==> <_sre.SRE_Match object; span=(0, 4), match=‘ak’>
print(result.group())

#例子9
import re
str1= ‘hello 123 wrold’ #对象
reg = ‘[a-z]+’#正则
result = re.findall(reg,str1) #其中
print(result)
==》[‘hello’, ‘wrold’]

#例子10
import re
str1= ‘hello 123 wrold’ #对象
reg = ‘[^123]+’#正则
result = re.findall(reg,str1) #其中
print(result)
==》['hello ‘, ’ wrold’]

#例子11
import re
str1= ‘hello 123 wrold’ #对象
reg = ‘\s+’#正则
result = re.findall(reg,str1) #其中
print(result)
[’ ', ’ ']

#例子12
import re
str1= ‘hello_123_wrold’ #对象
reg = ‘\w[^_]*’#正则
result = re.findall(reg,str1) #其中
print(result)
[‘hello’, ‘_123’, ‘_wrold’]

发布了4 篇原创文章 · 获赞 0 · 访问量 23

猜你喜欢

转载自blog.csdn.net/weixin_44824389/article/details/104319281