前言:
当前我们对“正则匹配括号里面的内容不包括括号”都比较讲究,看官们都需要了解一些“正则匹配括号里面的内容不包括括号”的相关内容。那么小编在网络上收集了一些对于“正则匹配括号里面的内容不包括括号””的相关内容,希望各位老铁们能喜欢,同学们一起来学习一下吧!正则表达式
内容类
正则支持普通字符串, (如: '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