前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Python基础库-正则表达式库

Python基础库-正则表达式库

原创
作者头像
鱼多多
发布2023-11-14 19:30:25
发布2023-11-14 19:30:25
26000
代码可运行
举报
文章被收录于专栏:PythonPython
运行总次数:0
代码可运行

1.正则表达式

1.1正则表达概述

正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。

现代编程语言基本内嵌了正则表达式的库,如per、python也不例外。虽然各种语言和库的定义的正则表达式的语法规则会有所不同,但基本内容是相同的。

1.2正则表达式库

Python 虽然自带正则表达式库re,但是该库不是自动加载进内存中的,需要使用下面的语句来引入

代码语言:python
代码运行次数:0
复制
import re

正则表达式的基础是匹配,匹配操作有两个,一个是规则,另一个是输入字符串在匹配的基础上可以进行替换、检索等操作。

1.3一个简单的例子:检查用户输入的邮箱地址是否合法

代码语言:txt
复制
一个简单的例子:检查用户输入的邮箱地址是否合法,合法的邮箱地址应该符合下面的格式
用户名 @ 主机名
代码语言:python
代码运行次数:0
复制
# 引入正则表达式库
import re


# 定义函数
def valid_email_address(addr):
    result = re.match(r"^[a-zA-z0-9]+@[a-zA-z0-9]+(\.[a-zA-z0-9]+)*$", addr)
    # 匹配成功
    if result is not None:
        print("[%s] is a valid email address" % addr)
    # 匹配失败
    else:
        print("[%s] is NOT a valid email address" % addr)


valid_email_address("name")
valid_email_address("name@")
valid_email_address("name@126.com")

执行结果:
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/正则/验证邮箱.py
[name] is NOT a valid email address
[name@] is NOT a valid email address
[name@126.com] is a valid email address

Process finished with exit code 0

2.正则表达式-原子

原子是正则表达式中最基本的组成单位,每个正则表达式中至少要包含一个原子。常见的原子类型有:

1.普通字符作为原子 : 如 az、AZ、0~9 等

2.非打印字符作为原子:如 \f \n \r \t \v \cx

3.通用字符作为原子:\d \D \w \W \s \S

4.原子表:自定义原子表([])作为原子:如:’/apjsp/’ ’/^apjsp/’

5.一些特殊字符和转义后元字符作为原子:

所有标点符号,但语句特殊意义的符号需要转义后才可作为原子,如:\” \’ * + ? . 等

3.正则表达式-元字符和语法

在正则表达式中,定义了一些元字符。这些字符一般用来匹配一组字符,如果希望匹配0-9这10个数字字符,那么便可以用元字符\d。元字符一般是以\开头,后面在跟着一个字符。另外有些语法是描述某个或某组字符出现的频率的,例如。如果认为某个字段是可选的,则可以指定其出现的频率是0或者是1

常用的元字符和语法

元字符

功能

描述

.

任意字符

除换行外的任意字符

\

转义符

转义符的作用就是使元字符无效;如.表示任意非换行字符,而 . 就表示普通小数点

\d

单个数字字符

\d等效于0-9

\D

单个非数字字符

\D等效除了0-9之外的任意字符,等效^0-9

\s

空白字符

空白字符包含空格、回车\r、换行\n、制表\t、换页\f

\S

非空白字符

\S+表示不包含空格字符的字符串

\w

单词字符

单词字符包括大小写字母、数字、下划线,不包括空格、$、#等

\W

非单词字符

非\w所包含的字符

任意多个

表示0或者多个前面的字符

一个或者多个

表示1个或者多个前面的字符

1个或者0个

表示0个或1个前面的字符

{m}

出现指定次数

表示m个前面的字符

{mn}

指定出现次数的范围

表示m到n个前面的字符

^

开头

表示输入的的第一个字符

$

结尾

表示字符串的结尾字符

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.正则表达式
    • 1.1正则表达概述
    • 1.2正则表达式库
    • 1.3一个简单的例子:检查用户输入的邮箱地址是否合法
  • 2.正则表达式-原子
  • 3.正则表达式-元字符和语法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档