美文网首页
Python笔记:正则表达的简单用法

Python笔记:正则表达的简单用法

作者: 傅越驰Ameeya | 来源:发表于2020-01-25 05:42 被阅读0次

re 正则表达式的使用方法

re(regular expression)是编程语言中常用的处理字符串的高效工具。Python中自然包含这个模块,模块名为re

在Python使用正则表达式的时候,需要添加以下代码引用re模块:

import re 

于代码开头 或引用文件之中


Pattern对象

正则表达式的模式Pattern:模式是一个字符串,好比一个筛子或者标尺,代表我们想要的字符串的特征。使用正则表达式的时候,我们将目标字符串与模式进行对比,符合模式的片段作为输出结果。

模式用compile方法建立,代码如下

p = re.compile(pattern)    # pattern为按照正则表达式格式写的字符串。

例: p = re.compile('a')  则这个模式匹配为'a'的字符串内容

例: p = re.compile('a\d') 则这个模式匹配a紧接任何一个数字,如“a1”,"a0","a7"等。

例:p = re.compile('a.+z') 则这个模式匹配a接任何字符(至少一个)接z,如“a2z”,"awgvio=¥%gba13obw123nz"等


正则表达式的常用方法有match, search, fullmatch, sub, split, findall等。通过这些方法,正则表达式可以实现对字符串的匹配,检索,替换,分割等操作的功能。以下是这些方法的功能介绍:

match (匹配)从字符串的开头开始,匹配模式字符

fullmatch (整体匹配)用整个字符串对模式字符进行匹配

search (检索)搜索字符串中匹配正则表达式的第一处子字符串

sub  替换字符串中的匹配项

split 以模式字符串为分隔符分隔字符

findall 找到字符串中所有符合模式的元素


详细说明与实例

re.match(pattern, string, flags=0) 也可以使用 pattern.match(string[, pos[, endpos]])

--match方法返回结果为一个match对象

re.search(pattern, string, flags=0) 或 pattern.search(string[, pos[, endpos]])

--search方法返回结果为一个match对象

re.sub(pattern, repl, string, count=0, flag =0) 也可以使用 pattern.sub(repl, string, count=0)

--返回替换之后的结果字符串

re.findall(pattern, string, flags=0) 或pattern.findall(string[, pos[, endpos]])

--返回所有找到的元素组成的列表


Match对象,方法包括:

group()  返回匹配的字符串

start()  开始位置

end()    结束位置

span()  开始和结束位置


模式pattern的写法

\d   Ascii模式:代表0-9中的一个数字字符  

      Unicode模式:代表任何一个Unicode目录中的十进制数字字符(不仅有0-9)

\D 匹配一个非\d的字符

\b 匹配一个单词开头或结尾,或匹配字符串开头与结尾

\B 匹配非\b的字符串

\s 匹配空白字符串,如[ \t\n\r\f\v]

\S 匹配非空白字符串

\w Ascii模式: ASCII字符中的数字和字母和下划线,就是 [a-zA-Z0-9_]  

     Unicode模式:表示可以构成词语的绝大多数字符

\W 非\w字符

. 匹配除了换行的任意字符

+ 前面的字符匹配1次或更多次

* 前面的字符匹配0次或多次

? 前面的字符匹配0次或1次

参考: https://docs.python.org/zh-cn/3/library/re.html

相关文章

网友评论

      本文标题:Python笔记:正则表达的简单用法

      本文链接:https://www.haomeiwen.com/subject/esfrthtx.html