【Python for Everybody】11 Regular Expressions

正则表达式

Regular Expressions,或叫做regex/regexp,是一种简洁灵活的匹配文本字符串的方法,是匹配与分析string 的wild card(万能牌)。

The Regular Expressions Module

使用regex前要先引用该模块:import re

re.search() 判断字符串是否匹配正则表达式,类似于string method中的find()
re.search()相比find()遍历每一行去查找,它可以多行多线程同时遍历寻找目标
在这里插入图片描述
^ 代表每一行以什么开头。如re.search(’ ^From: ', line),表示在line里寻找以From:为句首的字符串
在这里插入图片描述

re.findall()提取string中匹配正则表达式中的部分,类似于find()和slicing[ : ]的结合

Wild-Card Characters

 Wild-Card Characters 总结:
 ^   start of the line
 .   any character
 *   many times
 \S   any none-whitespace character
 +   one or more times
 [0-9]+   one or more digits
 [AEIOU]+   one or more uppercase letters
 .+?   one or more characters but not geedy 
  ()   where to start and stop what string to extract # ()前需要有空一格
 [^ ]   none blank character
 [0-9.]   a digit or period

在这里插入图片描述

在这里插入图片描述
“ ^X.*: ”表示以X开头,以:结尾,中间随便是什么的文本,其中X和:可以视为lock character
在这里插入图片描述

Maching and Extracting Data

re.findall()是指找到并提取

[0-9]+ 指含有至少一个数字
在这里插入图片描述
[AEIOU]+ 指至少含有一个大写字母
在这里插入图片描述
如果有多个string都可以被提取出来,根据greedy的原则,会提取最长的那个match
在这里插入图片描述
添加?可以变成non-greedy,输出最短的match
在这里插入图片描述
\S+@\S+表示@两边所有的字符,用空格作为截断
在这里插入图片描述
()表示提取的起始点,注意括号前要空一格
在这里插入图片描述

String Parsing Example

  1. find()和slicing
    在这里插入图片描述
  2. double split
    在这里插入图片描述
  3. regex
    @( [^ ] ) 表示在字符串中搜寻到第一个@,从这开始寻找每一个非空字符,截断到空字符为止
    在这里插入图片描述
    更精准的表达
    在这里插入图片描述
    例子
    在这里插入图片描述

Escape Character

转义字符
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值