python – re正则

温馨提示: 本文最后更新于2024-10-27 17:57:30,某些文章具有时效性,若有错误或已失效,请在下方 留言或联系 梦幻屋

正则

re.search():在字符串中搜索第一个匹配模式的子串,返回一个 Match 对象

re.match():在字符串的开头搜索匹配模式的子串,如果失败则返回 None

re.findall():在字符串中找到所有匹配模式的子串,返回一个列表 (常用)

re.sub():在字符串中替换所有匹配模式的子串

import re
# 使用 re.search() 函数查找匹配模式 
text = "6Hello,    World! 123-456-7890"
pattern = r"\d{3}-\d{3}-\d{4}"
# re.search():在字符串中搜索第一个匹配模式的子串,返回一个 Match 对象
result = re.search(pattern, text)
if result:
    print("Match found:", result.group())
else:
    print("Match not found.")
Match found: 123-456-7890
result
<re.Match object; span=(17, 29), match='123-456-7890'>
# re.match():在字符串的开头搜索匹配模式的子串,如果失败则返回 None
pattern = "\d"
result = re.match(pattern, text)
print(result)
<re.Match object; span=(0, 1), match='6'>
print(result.group())
6
# re.findall():在字符串中找到所有匹配模式的子串,返回一个列表 (常用)
pattern = r'\b\w+\b'  # 匹配一个或多个字母、数字或下划线组成的单词     \b 匹配单词

result = re.findall(pattern, text)
print('Result:', result)
Result: ['6Hello', 'World', '123', '456', '7890']
# re.sub():在字符串中替换所有匹配模式的子串
pattern = r'\s+'  # 匹配一个或多个空格
result = re.sub(pattern, ' ', text)
print('Result:', result)
Result: 6Hello, World! 123-456-7890
text.replace('    '," ")
'6Hello, World! 123-456-7890'

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 为了增加可读性,忽略空格和 # 后面的注释

pattern = "hello"
result = re.findall(pattern, text,re.I)
result
['Hello']
.*?   ()   ^a.+?a$    awawa   [(ab)cd]  =》  a(b|c)  = > ab  ac

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 为了增加可读性,忽略空格和 # 后面的注释- . 匹配任意单个字符,除了换行符 (\n)。

  • ^ 匹配字符串的开始。
  • $ 匹配字符串的结束。
  • * 匹配前面的字符0次或多次。
  • + 匹配前面的字符1次或多次。
  • ? 匹配前面的字符0次或1次。
  • {} 指定前面的字符出现的次数。
  • [] 匹配方括号中的任意单个字符。
  • | 指定多个匹配模式,匹配任意一个。
  • () 将多个字符当作单个字符处理。

常用元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线
\s匹配任意的空白符
\d [0-9]匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

常用限定符

代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

常用反义词

代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
[\s\S]   \d  \w      [^   a]  

正则表达式参考大全

help(re)
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容