正则表达式基础
来源:互联网 发布:新丰县网络问政平台 编辑:程序博客网 时间:2024/05/29 19:27
re – regular expression – regex – re
- 正则表达式是用来简洁表达一组字符串的表达式
正则表达式
- 通用的字符串表达框架
- 简洁表达一组字符串的表达式
- 针对字符串表达“简洁”和“特征”思想的工具
- 判断某个字符串特征匹配
正则表达式应用
- 表达文本类型特征(病毒、入侵等)
- 同时查找或替换一组字符串
- 匹配字符串的全部或部分
正则表达式的使用
- 编译:将符合正则表达式语法的字符串转换成正则表达式特征
编译后的特征与一组字符串是对应的, 编译之前的字符串只是符合正则表达式语法的单一字符串
经典实例
匹配IP地址的正则表达式
re库的基本使用
raw string类型(原生字符串类型)
- 表达方式:r”string”。 结果 string中的\不解释为转义字符
- 当string中包含\, 可以使用原生字符串类型。
re库的几个基本函数
- re.search(pattern, string, flags = 0)
- 在一个字符串中搜索匹配正则表达式的第一个位置, 返回match对象
- pattern:正则表达式的字符串或者原生字符串表示
- string:要与patten匹配的字符串
- flags:正则表达式使用时的控制标记
- re.I 标记:匹配正则表达式时忽略大小写
- re.M 标记:正则表达式中的^操作符。 当没有re.M时, ^操作符只能匹配字符串的开头部分, 加了re.M之后, 可以匹配字符串中每行的开头部分
- re.S 标记:正则表达式的.操作符, 没有re.S时, .操作符能匹配除换行符之外的所有字符, 加了re.S之后可以匹配所有字符
- re.match(pattern, string, flags = 0)
- 从一个字符串的开始位置起匹配正则表达式, 返回match对象
- 参数与search的参数一致1
import rematch = re.match(r"[1-9]\d{5}", "100081 BIT")if match: match.group(0)'100081'
- re.findall(pattern, string, flag = 0)
- 搜索字符串, 以列表类型返回全部能匹配的子串
- 参数与search一致
ls = re.findall(r"[1-9]\d{5}", "BTI100081 TSU100084")ls['100081', '100084']
- re.split(pattern, string, maxsplit = 0, flags = 0)
- 将一个字符串按照正则表达式的结果进行分割,返回列表类型。
- 其余三个参数与前面一致
import rels = re.split(r"[1-9]\d{5}", "BTI100081 TSU100084")ls['BTI', ' TSU', '']
- maxsplit:最大分割数, 剩余部分作为一个部分输出
import rels = re.split(r"[1-9]\d{5}", "BTI100081 TSU100084")ls['BTI', ' TSU', '']re.split(r"[1-9]\d{5}", "BTI100081 TSU100084", maxsplit = 1)['BTI', ' TSU100084']
- re.finditer(pattern, string, flags = 0)
- 搜索字符串, 返回一个匹配结果的迭代你类型, 每个迭代元素是match对象
- 参数和前面的是一样的。
for m in re.finditer(r"[1-9]\d{5}", "BTI100081 TSU100084"): if m: print (m.group(0)) 100081100084
- re.sub(pattern, repl, string, count = 0, flags = 0)
- 把一个新的字符串替换与正则表达式匹配的字符串, 然后与原来的字符串进行组合, 返回替换后的字符串
- 其他三个参数与上面出现的一致
- repl:替换匹配字符串的字符串
- count:匹配的最大替换次数
- 其中search、match、finditer返回对象都是match对象
- re.compile(pattern, flags = 0)
- 将正则表达式的字符串形式编译成正则表达式对象
re库另一种等价用法
参考自:http://www.icourse163.org/course/BIT-1001870001
阅读全文
0 0
- 正则表达式基础表达式
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式的基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式入门基础
- 正则表达式基础
- Javascript正则表达式基础
- 正则表达式基础
- 正则(正规)表达式基础
- 僵尸进程相关内容
- 重建二叉树
- Python语法易忘&速查笔记
- RecyclerView(六)设置下拉刷新
- QAQ & ORZ
- 正则表达式基础
- Java语言程序设计(原书第10版)基础篇 第一章课后答案
- 堆排序
- 012讲else with easygui和模块
- 多语言用户界面
- JavaScript相册单图放大预览第二版(js控制图片上下居中)
- #HDU5452#Minimum Cut(LCA+树剖)
- 判断网络类型 并下载 分段下载
- bzero与memset