Python之正则表达式-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、正则表达式

1、语法

在这里插入图片描述

在这里插入图片描述
如果以“\”开头的元字符与转义字符相同则需要使用“\”或者使用原始字符串。

在字符串前加上字符r或R之后表示原始字符串字符串中任意字符都不再进行转义。原始字符串可以减少用户的输入主要用于正则表达式和文件路径字符串的情况但如果字符串以一个斜线“\”结束的话则需要多写一个斜线即以“\”结束。

举例

最简单的正则表达式是普通字符串可以匹配自身
'[pjc]ython'可以匹配'python''jython''cython'
'[a-zA-Z0-9]'可以匹配一个任意大小写字母或数字
'[^abc]'可以一个匹配任意除'a''b''c'之外的字符
'python|perl''p(ython|erl)'都可以匹配'python''perl'
子模式后面加上问号表示可选。r'(http://)?(www\.)?python\.org'只能匹配'http://www.python.org''http://python.org''www.python.org''python.org'
'^http'只能匹配所有以'http'开头的字符串

2、直接使用正则表达式模块re处理字符串

在这里插入图片描述
下面的代码使用以“\”开头的元字符来实现字符串的特定搜索。

>>> import re
>>> example = 'Beautiful is better than ugly.'
>>> re.findall('\\bb.+?\\b', example)    #以字母b开头的完整单词
                                         #此处问号?表示非贪心模式
['better']
>>> re.findall('\\bb.+\\b', example)     #贪心模式的匹配结果
['better than ugly']
>>> re.findall('\\bb\w*\\b', example)
['better']
>>> re.findall('\\Bh.+?\\b', example)    #不以h开头且含有h字母的单词剩余部分
['han']
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python