加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Python正则表达式教程-常用文本处理技巧

发布时间:2019-10-30 17:44:08 所属栏目:建站 来源:数据大视界
导读:介绍: 正则表达式用于识别模式(pattern)是否存在于给定的字符(字符串)序列中。它们有助于处理文本数据,这通常是涉及文本挖掘的数据科学项目的先决条件。您一定遇到过一些正则表达式的应用程序:它们在服务器端用于在注册过程中验证电子邮件地址或密码的
副标题[/!--empirenews.page--]

Python正则表达式教程-常用文本处理技巧

 介绍:

正则表达式用于识别模式(pattern)是否存在于给定的字符(字符串)序列中。它们有助于处理文本数据,这通常是涉及文本挖掘的数据科学项目的先决条件。您一定遇到过一些正则表达式的应用程序:它们在服务器端用于在注册过程中验证电子邮件地址或密码的格式,用于解析文本数据文件以查找,替换或删除某些字符串等。

内容:

正则表达式非常强大,在本教程中,您将学习在Python中使用它们。您将涵盖以下主题:

  • Python中的正则表达式
  • 基本字符:普通字符
  • 通配符:特殊字符
  • 重复次数
  • 使用正则表达式进行分组
  • 贪婪vs非贪婪匹配
  • re Python库 --- search() 与 match()

Python中的正则表达式

  • 导入re模块

在Python中,re模块支持正则表达式。使用以下命令导入此模块:

  1. Import re 
  • 基本模式:普通字符

您可以使用普通字符轻松解决Python中的许多基本模式。普通字符是最简单的正则表达式。它们完全匹配,并且在正则表达式语法中没有特殊含义。

示例为" A"," a"," X"," 5"。

普通字符可用于执行简单的完全匹配:

  1. >>>Import re 
  2. >>>pattern = r"Cookie" 
  3. >>>sequence = "Cookie" 
  4. >>>if re.match(pattern, sequence): 
  5. >>> print("Match!") 
  6. >>>else:  
  7. >>> print("Not a match!") 
  8. Match! 

match()如果文本与模式匹配,则该函数返回匹配对象。否则返回None。

不过,现在让我们关注普通字符!您是否注意到r模式的开头Cookie?

这称为原始字符串文字。它更改了字符串文字的解释方式。这样的文字会按其出现时进行存储。

例如,当前缀为a时只是一个反斜杠,r而不是被解释为转义序列。您将看到带有特殊字符的含义。有时,语法涉及反斜杠转义的字符,并且为了防止将这些字符解释为转义序列,请使用原始r前缀。在本示例中,您实际上并不需要它,但是使用它来保持一致性是一种很好的做法。

  • 通配符:特殊字符

特殊字符是与正则表达式不匹配但在正则表达式中使用时实际上具有特殊含义的字符。

最广泛使用的特殊字符是:

  •  . -匹配除换行符以外的任何单个字符。
  1. re.search(r'Co.k.e', 'Cookie').group() 
  2. 'Cookie' 

该group()函数返回与匹配的字符串re。稍后您将更详细地看到此功能。

  • w - 小写w。匹配任何单个字母,数字或下划线。
  1. re.search(r'Cowkwe', 'Cookie').group() 
  2. 'Cookie' 
  •  W - 大写w。匹配不属于 w的任何字符(小写w)。
  1. re.search(r'CWke', 'C@ke').group() 
  2. 'C@ke' 
  • s - 小写字母s。匹配单个空格字符,例如:空格,换行符,制表符,返回值。
  1. re.search(r'Eatscake', 'Eat cake').group() 
  2. 'Eat cake' 
  •  S - 大写字母s。匹配不属于 s(小写s)的任何字符。
  1. re.search(r'CookSe', 'Cookie').group() 
  2. 'Cookie' 
  • t - 小写字母t。匹配标签。
  1. re.search(r'Eattcake', 'Eat cake').group() 
  2. 'Eattcake' 
  • n - 小写字母n。匹配换行符。
  • r - 小写字母r。比赛归来。
  • d - 小写字母d。匹配十进制数字0-9。
  1. re.search(r'cddkie', 'c00kie').group()'c00kie' 
  • ^-插入符号 在字符串的开头匹配一个模式。
  1. re.search(r'^Eat', 'Eat cake').group()'Eat' 
  • $ -匹配字符串末尾的模式。
  1. re.search(r'cake$', 'Eat cake').group() 
  2. 'cake' 

[abc] -匹配a或b或c。

[a-zA-Z0-9]-匹配(a至z)或(A至Z)或(0至9)中的任何字母。可以通过补充集合来匹配不在范围内的字符。如果集合的第一个字符是^,则所有不在集合中的字符都将被匹配。

  1. re.search(r'Number: [0-6]', 'Number: 5').group() 
  2. 'Number: 5' 
  3. # Matches any character except 5 
  4. re.search(r'Number: [^5]', 'Number: 0').group() 
  5. 'Number: 0' 
  • A-大写a。仅在字符串开头匹配。也可以跨多行工作。
  1. re.search(r'A[A-E]ookie', 'Cookie').group() 
  2. 'Cookie' 
  • b-小写字母b。仅匹配单词的开头或结尾。
  1. re.search(r'b[A-E]ookie', 'Cookie').group() 
  2. 'Cookie' 
  • -反斜杠。如果反斜杠后面的字符是公认的转义字符,则采用该术语的特殊含义。例如,n被视为换行符。但是,如果后面的字符不是可识别的转义字符,则将象任何其他字符一样对待并通过。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读