Pyhton 正则表达式 01

易小灯塔
2017-08-07 / 0 评论 / 776 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月22日,已超过888天没有更新,若内容或图片失效,请留言反馈。

正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本

许多程序设计语言都支持利用正则表达式进行字符串操作。Python也不例外.

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串

在 Python 中,我们可以使用内置的 re 模块来使用正则表达式。

有一点需要特别注意的是,正则表达式使用对特殊字符进行转义,所以如果我们要使用原始字符串,只需加一个 r 前缀,示例:

r'chuanzhiboke\t\.\tpython' 

re模块的使用过程

# 导入re模块
import re

# 使用match方法进行匹配操作
result = re.match(正则表达式, 要匹配的字符串)

# 如果上一步匹配到数据的话,可以使用group方法来提取数据
result.group() 

使用示例

匹配以insmoin开头的语句:

import re

result = re.match(r"insmoin","insmoin.com") #能够匹配出以insmoin开头的字符串

result.group() 

字符功能
.匹配任意1个字符(除了\n)
[ ]匹配[ ]中列举的字符
\d匹配数字,即0-9
\D匹配非数字,即不是数字
\s匹配空白,即空格,tab键
\S匹配非空白
\w匹配单词字符,即a-z、A-Z、0-9、_
\W匹配非单词字符
字符功能
*匹配前一个字符出现0次或者无限次,即可有可无
+匹配前一个字符出现1次或者无限次,即至少有1次
?匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m}匹配前一个字符出现m次
{m, n}匹配前一个字符出现从m到n次
字符功能
^匹配字符串开头
$匹配字符串结尾
字符功能
|匹配左右任意一个表达式
(ab)将括号中字符作为一个分组
|num引用分组num匹配到的字符串
(?P)分组起别名
(?P=name)引用别名为name分组匹配到的字符串

匹配出163、126、qq邮箱

示例代码:

import re

ret = re.match("\w{4,20}@163\.com", "test@163.com")
print(ret.group())  # test@163.com

ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@126.com")
print(ret.group())  # test@126.com

ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@qq.com")
print(ret.group())  # test@qq.com

ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@gmail.com")
if ret:
    print(ret.group())
else:
    print("不是163、126、qq邮箱")  # 不是163、126、qq邮箱 

image-20201107151425979

0

评论 (0)

取消