Python中文自然语言处理基础与实战(第2版)(微课版)课件 第3章 正则表达式_第1页
Python中文自然语言处理基础与实战(第2版)(微课版)课件 第3章 正则表达式_第2页
Python中文自然语言处理基础与实战(第2版)(微课版)课件 第3章 正则表达式_第3页
Python中文自然语言处理基础与实战(第2版)(微课版)课件 第3章 正则表达式_第4页
Python中文自然语言处理基础与实战(第2版)(微课版)课件 第3章 正则表达式_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

正则表达式正则表达式简介正则表达式应用正则表达式的应用范围数据验证与格式化文本搜索与信息抽取数据清洗与转换日志文件的分析语法分析与文本解析正则表达式函数正则表达式由普通字符(如字母、数字、符号)和元字符(有特殊含义的字符)组成,用于定义匹配规则。Python的re库提供正则表达式引擎接口,可将正则表达式编译成模式对象,通过该对象实现字符串匹配、查找、替换和分割等操作。常用函数包括match、search、findall、sub、finditer和split。正则表达式函数正则表达式函数match函数search函数findall函数re.match(pattern,string,flags=0)re.search(pattern,string,flags=0)re.findall(pattern,string,flags=0)re.sub(pattern,repl,string,count=0,flags=0)re.finditer(pattern,string,flags=0)sub函数finditer函数re.split(pattern,string,maxsplit=0,flags=0)split函数正则表达式元字符1.量词元字符元字符含义示例*表示前一个字符匹配出现0次、1次或多次

“a*b”可以匹配

“b”

“ab”

“aab”等+表示前一个字符匹配出现1次或多次“a+b”可以匹配

“ab”“aab”“aaab”等?表示前一个字符匹配出现0次或1次“a?b”可以匹配“b”“ab”等{n}表示匹配前一个字符恰好出现n次

“a{3}b”只能匹配

“aaab”{n,}表示匹配前一个字符至少出现n次

“a{2,}b”可以匹配“aab”“aaab”等{n,m}表示匹配前一个字符出现n到m次“a{2,4}b”可以匹配“aab”“aaab”“aaaab”等正则表达式元字符2.常见的字符类元字符元字符含义示例[]表示匹配方括号中的任意一个字符

“[abc]”可以匹配“a”“b”“c”中的任意一个字符[^]表示匹配方括号中的字符以外的任意字符

“[^abc]”可以匹配除

“a”“b”

“c”以外的任意一个字符-表示范围

“[a-z]”表示匹配任意小写英文字母\d表示匹配任意数字“\d”相当于“[0-9]”\D表示匹配任意非数字的字符“\D”相当于

“[^0-9]”\w表示匹配任意英文字母、数字或下画线

“\w”相当于

“[a-zA-Z0-9_]”\W表示匹配任意非英文字母、数字或下画线

“\W”相当于“[^a-zA-Z0-9_]”\s表示匹配任意空白字符,包括空格、制表符、换行符等

“\s”会匹配“HelloWorld!”中的空格\S表示匹配任意非空白字符

“\S”会匹配“HelloWorld!”中的“Hello”和“

World”两个单词,但不包括它们之间的空格正则表达式元字符3.锚点和边界元字符元字符含义示例^用于匹配指定字符串的开始位置

“^[A-Z]”可以匹配以大写英文字母开头的字符串$用于匹配指定字符串的结束位置

“a$”可以匹配以英文字母

“a”结尾的字符串\b表示匹配单词边界,即单词前后的位置

“\babc\b”可以匹配“abc”,但不能匹配“abcd”或

“aabc”正则表达式元字符4.特殊字符元字符含义示例\用于转义字符

“\.”可以匹配点号

“.”字符.表示匹配任意一个字符(除换行符“\n”)

“a.b”可以匹配“a1b”

“a_b”

“ab”“aXb”“a$b”|表示逻辑“或”操作

“a|b”可以匹配

“a”或

“b”()用于分组匹配

“(abc)+”可以匹配

“abc”

“abcabc”“abcabcabc”正则表达式元字符在正则表达式中,若字符串包含元字符(如

“$”

“.”“[]”等)或“\”,会与正则表达式的特殊规则冲突。这种情况可以使用

“\”对这些字符转义,使其按普通字符处理。例如,“\d”需写成“\\d”。但这种方法较繁琐,Python的原生字符“r”可简化操作。例如,“\\d”可直接写为“r'\d”,使正则表达式的书写更简便。正则表达式简介正则表达式应用常用正则表达式搭配常见的文本匹配任务和正则表达式搭配如下表。文本匹配任务正则表达式搭配匹配整数r'^\d+$'匹配浮点数r'^\d+\.\d+$'匹配电子邮箱地址r'^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$'匹配URLr'^(http|https):\/\/[^\s]+$'匹配手机号码r'^1\d{10}$'匹配身份号码r'^\d{17}[\dXx]$'匹配日期r'^(\d{4})-(\d{2})-(\d{2})$'匹配IP地址r'^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$'匹配HTML标签r'<[^>]+>'常用正则表达式搭配常见的文本匹配任务和正则表达式搭配如下表。文本匹配任务正则表达式搭配匹配中文字符r'[\u4e00-\u9fa5]'匹配连续重复的字符r'(.)\1+'匹配邮政编码r'^\d{6}$'匹配域名r'^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$'匹配十六进制颜色代码r'^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$'匹配XML(ExtensibleMarkupLarguage,可扩展标记语言)标签r'<([a-zA-Z]+)[^>]*>.*?<\/\1>'匹配QQ号码r'^[1-9]\d{4,10}$'匹配年份r'^(19|20)\d{2}$'匹配MAC(MediumAccessControl,介质访问控制)地址r'^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$'常用正则表达式搭配常见的文本匹配任务和正则表达式搭配如下表。文本匹配任务正则表达式搭配匹配替代方案r'\b(replace|substitute)\b'匹配4位验证码r'^\d{4}$'匹配邮件主题r'^Subject:.*$'匹配单词边界r'\bword\b'匹配非负整数r'^\d+$'匹配句子中的叹号r'!'匹配包含英文字母和数字的密码r'^(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z\d]+$'常用正则表达式示例验证电子邮箱地址格式验证电话号码格式验证日期格式提取文本中的信息过滤文本小结本章主要介绍了在NLP中正则表达式的应用范围、正则表达式函数、正则表达式元字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论