龙空技术网

用最简单的方式教会你使用Python正则

哞哞动画 385

前言:

当前我们对“正则匹配括号里面的内容不包括括号”都比较讲究,看官们都需要了解一些“正则匹配括号里面的内容不包括括号”的相关内容。那么小编在网络上收集了一些对于“正则匹配括号里面的内容不包括括号””的相关内容,希望各位老铁们能喜欢,同学们一起来学习一下吧!

正则表达式

内容类

正则支持普通字符串, (如: 'a', 'b', 12 )元字符, 通过一个字符匹配一堆内容

\d

(digital)匹配一个数字(0 - 9)

\w

(word)匹配数字(0-9), 字母(a- zA - Z), 下划线(_)

\D

非数字

\W

非字母

[]/[^]

[] 范围内匹配, 匹配 [] 内的任意一个字符或 非括号内字符

.

除换行符, 全部匹配

计数类

*

前边的元字符出现任意数量

(有贪婪属性)

?

前边的元字符出现或不出现

+

前边的元字符出现一个或多个

{n}, {m, n}

n, m 都为非负正整数

{n} 匹配 n 次

{n,} 最少匹配 n 次

{n,m} 最少匹配 n 次, 最多匹配 m 次

边界符号类

^ / $

行开始或结尾匹配

\b

匹配边界词

\B

匹配非边界词

是否惰性

.*

表示任意匹配除换行符(\n、\r)之外的任何单个或多个字符

.*?

表示"非贪婪"模式,只保存第一个匹配到的子串

python re 模块

Python中通过re模块来实现正则功能, 以下是常用示例代码

# 引入Python正则模块import re# pattern 字符串形式的正则表达式# string 要匹配的字符串# flags 匹配模式re.findall(pattern="", string="", flags=re.S)

匹配模式:

re.I 忽略大小写re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境re.M 多行模式re.S 即为' . '并且包括换行符在内的任意字符(' . '不包括换行符)re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库re.X 为了增加可读性,忽略空格和' # '后面的注释

常用方法示例

import re# 查找所有匹配项res1 = re.findall(pattern=r"\d+", string="今天有100, 吃2个包子")print(res1)# ['100', '2']# 搜索匹配项, 返回第一个匹配成功的res2 = re.search(pattern=r"\d+", string="今天有100, 吃2个包子")print(res2, ", ", res2.group())# <re.Match object; span=(3, 6), match='100'> , 100# 返回匹配的枚举, 数据量大时推荐使用res3 = re.finditer(pattern=r"\d+", string="今天有100, 吃2个包子")for r in res3:print(r, ", ", r.group())# <re.Match object; span=(3, 6), match='100'> , 100# <re.Match object; span=(9, 10), match='2'> , 2# 预编译正则pattern = re.compile(r"\d+")print(pattern.match("今天有100, 吃2个包子"))print(pattern.findall("今天有100, 吃2个包子"))# 只匹配开头,返回boolpattern.match(str)
分组匹配

括号分组(通过括号顺序分组)

import re# 定义正则表达式模式pattern = r"(\d+)([\w]+)"# 要匹配的字符串string = "123hello world"# 使用 match()方法进行匹配match = re.match(pattern, string)# 检查是否匹配成功if match:    # 通过索引访问分组捕获的内容    group1 = match.group(1)    group2 = match.group(2)    print(f"分组 1: {group1}")    print(f"分组 2: {group2}")else:    print("匹配失败")# 分组 1: 123# 分组 2: hello

命名分组(通过指定分组名字进行分组

(?P<分组名>))

import re# 定义正则表达式模式pattern = r"(?P<name>\w+) (?P<age>\d+)"# 要匹配的字符串string = "Alice 25"# 使用 match()方法进行匹配match = re.match(pattern, string)# 检查是否匹配成功if match:    # 通过名称访问分组捕获的内容    name = match.group("name")    age = match.group("age")    print(f"姓名: {name}")    print(f"年龄: {age}")else:    print("匹配失败")# 姓名: Alice# 年龄: 25

标签: #正则匹配括号里面的内容不包括括号 #python正则非该字符 #python正则不包含某个字符串 #python正则不包含某个字符串吗 #python 正则 res