Python正则表达式常用特殊字符及其含义示例详解

 更新时间:2026年02月26日 11:28:00   作者:遇到BUG就睡觉  
Python正则表达式是一种强大的文本匹配工具,常用于处理字符串、解析HTML、爬虫等领域,这篇文章主要介绍了Python正则表达式常用特殊字符及其含义的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

以下是 Python 正则表达式常用特殊字符及其含义 的全面整理,涵盖了常见和重要的正则符号,以及它们的示例,适合用来写博客或学习使用:

Python 正则表达式常用特殊字符及其含义

1. . (点号)

  • 含义:匹配除换行符 \n 以外的任意单个字符。
  • 示例
    import re
    pattern = r"a.b"
    print(re.match(pattern, "acb"))  # 匹配成功,"a.b" 中间任意字符
    print(re.match(pattern, "a\nb")) # 不匹配,中间是换行符
    

2. ^ (脱字符)

  • 含义:匹配字符串的开头。
  • 示例
    pattern = r"^Hello"
    print(re.match(pattern, "Hello world"))  # 匹配成功
    print(re.match(pattern, "world Hello"))  # 不匹配
    

3. $ (美元符)

  • 含义:匹配字符串的结尾。
  • 示例
    pattern = r"world$"
    print(re.search(pattern, "Hello world"))  # 匹配成功
    print(re.search(pattern, "Hello world!")) # 不匹配
    

4. * (星号)

  • 含义:匹配前面的字符零次或多次。
  • 示例
    pattern = r"ab*"
    print(re.match(pattern, "a"))     # 匹配成功,b 出现零次
    print(re.match(pattern, "abbb"))  # 匹配成功,b 出现多次
    

5. + (加号)

  • 含义:匹配前面的字符一次或多次。
  • 示例
    pattern = r"ab+"
    print(re.match(pattern, "ab"))    # 匹配成功,b 出现一次
    print(re.match(pattern, "a"))     # 不匹配,至少需要一个 b
    

6. ? (问号)

  • 含义:匹配前面的字符零次或一次。
  • 示例
    pattern = r"ab?"
    print(re.match(pattern, "a"))     # 匹配成功,b 出现零次
    print(re.match(pattern, "ab"))    # 匹配成功,b 出现一次
    print(re.match(pattern, "abb"))   # 不匹配,b 出现两次
    

7. {n}, {n,}, {n,m} (量词限定符)

  • 含义
    • {n}:匹配前一个字符恰好 n 次。
    • {n,}:匹配至少 n 次。
    • {n,m}:匹配至少 n 次,至多 m 次。
  • 示例
    pattern = r"ab{2,4}"
    print(re.match(pattern, "abb"))     # 匹配成功,b 出现 2 次
    print(re.match(pattern, "abbbb"))   # 不匹配,b 超过 4 次
    

8. [...] (字符类)

  • 含义:匹配方括号内的任意字符。
    • [a-z]:表示范围,匹配从 a 到 z 的任意字符。
    • [^...]:取反,匹配不在方括号内的任意字符。
  • 示例
    pattern = r"[aeiou]"
    print(re.match(pattern, "apple"))   # 匹配成功,匹配元音字母 'a'
    
    pattern2 = r"[^aeiou]"
    print(re.match(pattern2, "hello"))  # 匹配 'h',不是元音字母
    

9. - (连字符/减号)

  • 含义:在字符类中,表示范围。
    • [a-z]:从 a 到 z
    • [A-Z]:从 A 到 Z
    • [-]:如果 - 出现在开头或结尾,匹配减号本身。
  • 示例
    pattern = r"[a-z0-9]"
    print(re.match(pattern, "5"))       # 匹配成功,数字在范围内
    print(re.match(pattern, "g"))       # 匹配成功,字母在范围内
    

10. | (管道符)

  • 含义:表示逻辑 "或",匹配左边或右边的规则。
  • 示例
    pattern = r"cat|dog"
    print(re.match(pattern, "cat"))    # 匹配成功
    print(re.match(pattern, "dog"))    # 匹配成功
    

11. () (分组和捕获)

  • 含义:将多个字符作为一个整体进行匹配,并捕获组内容。
  • 示例
    pattern = r"(ab)+"
    print(re.match(pattern, "abab"))    # 匹配成功
    

12. \ (反斜杠)

  • 含义:用于转义特殊字符,或表示特殊的匹配序列。
    • \d:匹配数字 [0-9]
    • \s:匹配空白字符(如空格、制表符)。
    • \w:匹配字母、数字和下划线 [a-zA-Z0-9_]
    • \D\S\W:与上述序列的反义。
  • 示例
    pattern = r"\d+"
    print(re.match(pattern, "12345"))   # 匹配成功
    print(re.match(pattern, "abc"))     # 不匹配
    

13. \b 和 \B (单词边界)

  • \b:匹配单词边界。
  • \B:匹配非单词边界。
  • 示例
    pattern = r"\bcat\b"
    print(re.search(pattern, "a cat sat"))    # 匹配成功,完整的单词 'cat'
    
    pattern2 = r"cat\B"
    print(re.search(pattern2, "concatenate")) # 匹配成功,'cat' 后非边界
    

14. 零宽断言 (Lookaround)

  • (?=...):正向肯定预查。
  • (?!...):正向否定预查。
  • (?<=...):后向肯定预查。
  • (?<!...):后向否定预查。
  • 示例
    pattern = r"(?<=\$)\d+"
    print(re.search(pattern, "价格是$100"))  # 匹配 '100',不包括 '$'
    

15. 命名组和引用

  • (?P<name>...):定义命名分组。
  • (?P=name):引用命名分组。
  • 示例
    pattern = r"(?P<number>\d+)\s+(?P=number)"
    print(re.match(pattern, "123 123"))  # 匹配两个相同的数字
    

以上内容全面涵盖了 Python 正则表达式中的常用特殊字符及其含义,并结合示例展示了每个符号的实际用法,适合用于博客或深入学习。

总结

到此这篇关于Python正则表达式常用特殊字符及其含义示例详解的文章就介绍到这了,更多相关Python正则特殊字符及含义内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pytorch 批次遍历数据集打印数据的例子

    pytorch 批次遍历数据集打印数据的例子

    今天小编就为大家分享一篇pytorch 批次遍历数据集打印数据的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python--字典(dict)和集合(set)详解

    python--字典(dict)和集合(set)详解

    本文通过实例给大家介绍了python中字典和集合的知识小结,非常不错,具有参考借鉴价值,需要的的朋友参考下吧,希望能够给你带来帮助
    2021-09-09
  • Python&Matlab实现灰狼优化算法的示例代码

    Python&Matlab实现灰狼优化算法的示例代码

    灰狼优化算法是一种群智能优化算法,它的独特之处在于一小部分拥有绝对话语权的灰狼带领一群灰狼向猎物前进。本文具体介绍了灰狼优化算法的两种实现示例代码,需要的可以参考一下
    2022-03-03
  • python中sklearn的pipeline模块实例详解

    python中sklearn的pipeline模块实例详解

    这篇文章主要介绍了python中sklearn的pipeline模块的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Python Flask利用SocketIO库实现图表的绘制

    Python Flask利用SocketIO库实现图表的绘制

    这篇文章主要为大家详细介绍了Python Flask框架如何利用SocketIO库实现图表的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • 如何构建第二个Django的应用程序

    如何构建第二个Django的应用程序

    这篇文章主要介绍了如何构建第二个Django的应用程序问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • PyCharm MySQL可视化Database配置过程图解

    PyCharm MySQL可视化Database配置过程图解

    这篇文章主要介绍了PyCharm MySQL可视化Database配置过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 详解利用Python制作中文汉字雨效果

    详解利用Python制作中文汉字雨效果

    这篇文章主要介绍了如何利用Python中的Pygame模块实现中文汉字雨效果,文中通过示例代码介绍的非常详细,感兴趣的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Python插件virtualenv搭建虚拟环境

    Python插件virtualenv搭建虚拟环境

    这篇文章主要为大家详细介绍了Python插件virtualenv搭建虚拟环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • python中plt.imshow与cv2.imshow显示颜色问题

    python中plt.imshow与cv2.imshow显示颜色问题

    这篇文章主要介绍了plt.imshow与cv2.imshow显示颜色问题,本文给大家介绍的非常详细,同时给大家提到了cv2.imshow()和plt.imshow()的区别讲解,需要的朋友可以参考下
    2020-07-07

最新评论