美文网首页
RE模块字符串操作

RE模块字符串操作

作者: 罗泽坤 | 来源:发表于2020-01-15 22:27 被阅读0次

RE模块字符串操作

  • 使用match方法从开始处匹配字符串,if sucess return Match objection else return None

re.match(pattern,string,flags)

  • 使用search方法在整个字符串中匹配子字符串,if sucess return Match objection else return None

re.search(pattern,string,flags)

  • 使用findall方法匹配所有符合expression的字符串,if succss return Match-list else return None-list

re.findall(pattern,string,flags)

参数说明

1.pattern:匹配模板

2.string:匹配字符串

3.flags:可选参数,用于控制匹配方式,如是否区分大小写

  • 使用sub方法替换字符串

re.sub(pattern,repl,string,count,flag)

参数说明

1.pattern:匹配模板

2.repl:表示替换成的字符串

3.string:表示被替换的字符串

3.count:表示替换最大次数

  • 使用split方法分割字符串

re.split(pattern,string,[maxsplit],[flags])

参数说明

1.string:分割字符串

2.maxplit:最大分割次数

import re
pattern = r'mr_\w+'
string = 'MR_one mr_two'
match = re.match(pattern,string,re.I)
print(match)
print(match.string)   #提取要匹配的字符串
print(match.start())    #匹配起始位置
print(match.end())      #匹配结尾位置
print(match.span())     #匹配起始结尾位置元组
print(match.group())   #匹配的数据
<_sre.SRE_Match object; span=(0, 6), match='MR_one'>
MR_one mr_two
0
6
(0, 6)
MR_one
string = '321  Mr_luo'
search = re.search(pattern,string,re.I)
print(search.string)
print(search.group())
321  Mr_luo
Mr_luo
string = 'dsadsa 123 dsad 123 dsa 123 dsa 123'
pattern = '[0-9]{1,3}'
findall = re.findall(pattern,string)
print(findall)
['123', '123', '123', '123']
pattern = '[0-9]{1,3}'
repl = 'SSS'
print('替换之前:',string)
sub = re.sub(pattern,repl,string)
print('替换之后:',sub)
替换之前: dsadsa 123 dsad 123 dsa 123 dsa 123
替换之后: dsadsa SSS dsad SSS dsa SSS dsa SSS
print('分割之前:',sub)
pattern = '[a|s]'
split = re.split(pattern,sub,0,re.I)
print('分割之后:',split)
分割之前: dsadsa SSS dsad SSS dsa SSS dsa SSS
分割之后: ['d', '', 'd', '', ' ', '', '', ' d', '', 'd ', '', '', ' d', '', ' ', '', '', ' d', '', ' ', '', '', '']
# 匹配IP地址
import re
pattern1 = r'[1-9]{1,3}(\.[0-9]{1,3}){3}'
pattern2 = r'[1-9]{1,3}(\.[0-9]{1,3}){2}'
pattern3 = r'([1-9]{1,3}(\.[0-9]{1,3}){2})'
pattern4 = r'([1-9]{1,3}(\.[0-9]{1,3}){3})'

string = '193.168.1.1 192.168.1.66'
findall1 = re.findall(pattern1,string)
print(findall1)
findall2 = re.findall(pattern2,string)
print(findall2)
findall3 = re.findall(pattern3,string)
print(findall3)
findall4 = re.findall(pattern4,string)
print(findall4)
['.1', '.66']
['.1', '.1']
[('193.168.1', '.1'), ('192.168.1', '.1')]
[('193.168.1.1', '.1'), ('192.168.1.66', '.66')]
for item in findall4:
    print(item[0])
193.168.1.1
192.168.1.66

由上面的例子可以看到当分组里面套了分组的时候程序是如何运行的
pattern3 = r'([1-9]{1,3}(.[0-9]{1,3}){2})'
pattern4 = r'([1-9]{1,3}(.[0-9]{1,3}){3})'
如这两个表达式在匹配的时候先忽略内层括号,考虑最外面一层()进行匹配,然后在匹配内层括号内的,然后把内层与外层的匹配值合并成一组
(.[0-9]{1,3}){2})
(.[0-9]{1,3}){3})
这两个表达式的意思是重复匹配表达式(.[0-9]{1,3}),2、3次且取最后一次匹配值

相关文章

  • 正则表达式与django

    re模块操作 操作的时候要首先要导入re模块re.match('正则表达式','要匹配的字符串')re.match...

  • 正则表达式

    re模块操作 在Python中需要通过正则表达式对字符串进行匹配的时候,要用到一个模块,名字为re 1.re模块的...

  • python正则

    re模块操作 在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re re模块的使...

  • RE模块字符串操作

    RE模块字符串操作 使用match方法从开始处匹配字符串,if sucess return Match objec...

  • 正则表达式

    1. re模块操作 在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re re....

  • python正则

    一:re模块操作 在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re 1. r...

  • python基础学习(三)

    常用模块 String模块 数学模块 随机模块 OS模块 os.path模块 re模块 常用函数及操作 列表操作 ...

  • 08-数据提取-正则表达式

    re模块的常见方法原始字符串r匹配中文 re模块的常见方法 re.match()从头找一个 re.search()...

  • 正则表达式与Django

    正则表达式: 1、re模块出操作:(1)操作的时候首先要导入re模块(2)re.match('正则表达式‘,‘要匹...

  • Python之路13:

    re 模块,正则匹配表达式 正则匹配表达式就是字符串的匹配规则 re 模块的匹配语法: re.match 从头开始...

网友评论

      本文标题:RE模块字符串操作

      本文链接:https://www.haomeiwen.com/subject/bgexzctx.html