正则表达式(3)更多干货--特殊字符与普通字符
发布日期:2021-05-07 15:03:45 浏览次数:16 分类:精选文章

本文共 1349 字,大约阅读时间需要 4 分钟。

标题:正则表达式(3)更多干货–特殊字符与普通字符

正则表达式(RE)是一种强大的工具,用于匹配字符串中的特定模式。它通过结合特殊字符与普通字符,帮助我们从大量数据中提取所需信息,就像过滤泥沙一样。接下来,我们将深入探讨正则表达式中的特殊字符及其应用。

特殊字符是正则表达式中的核心要素,它们赋予了我们对字符串进行精确匹配的能力。以下是一些常见的特殊字符及其作用:

  • .:匹配任意单个字符(除换行符外)。
  • ^:匹配字符串的开头。
  • $:匹配字符串的结尾或换行符前的位置。
  • *:匹配前一个字符零次或多次(贪婪模式)。
  • +:匹配前一个字符一次或多次(贪婪模式)。
  • ?:匹配前一个字符零次或一次(贪婪模式)。
  • {m,n}:匹配前一个字符从m次到n次(贪婪模式)。
  • {m,n}?:匹配前一个字符从m次到n次(非贪婪模式)。
  • \:用于转义特殊字符或表示特殊序列。
  • []:定义一个字符集合,^作为第一个字符表示取反集合。
  • |:创建匹配或的条件(A或B)。
  • (...):匹配括号内的子表达式,支持捕获和回溯。
  • (?aiLmsux):开启正则表达式的各种标志选项。
  • (?:...):非捕获组,用于组织表达式。
  • (?P<name>):为捕获组命名,以便在后续使用。
  • (?P=name):引用已捕获的组名。
  • (?#...):注释行,忽略不计。
  • (?=...):正向断言,匹配后续位置满足条件但不消耗字符。
  • (?!...):负向断言,匹配后续位置不满足条件。
  • (?<=...):前置断言,匹配前置满足条件的位置。
  • (?<...):后置断言,匹配后置满足条件的位置。
  • (?&lt;=...):匹配前置满足条件的位置。
  • (?<=...):匹配后置满足条件的位置。
  • 特殊序列则用于表示更复杂的模式匹配需求。常见的特殊序列包括:

  • \A:匹配字符串的开头。
  • \Z:匹配字符串的结尾。
  • \b:匹配单词边界。
  • \B:匹配非单词边界。
  • \d:匹配任意数字。
  • \D:匹配非数字字符。
  • \s:匹配任意空白字符。
  • \S:匹配非空白字符。
  • \w:匹配任意字母、数字或下划线。
  • \W:匹配任意非字母、非数字、非下划线字符。
  • \:匹配一个字母,避免特殊解释。
  • 通过合理使用这些特殊字符和序列,我们可以构建复杂的正则表达式,精准提取所需信息。例如,在以下代码中:

    import redemo_str1 = '''agoo¥glelgooooogxyz123ab#c456 xyz789wwcgo#698ogle woaini'''# 使用正则表达式提取单词reg4 = re.findall(r'\w+', demo_str1)print(reg4)  # 输出: ['agoo', 'gle', 'lgoo', 'og', 'xyz', 'ab', 'c456', 'xyz', '789', 'ww', 'cgo', 'ogle', 'woaini']

    r'\w+'匹配一个或多个字母、数字或下划线,用于提取单词。若需保留特殊字符,可以改用r'\w+[\W]*',以包含特殊符号。

    正则表达式的高级应用还包括分组、锚定和回溯等功能,后续内容将详细探讨这些高级特性。通过合理运用这些工具,我们可以高效地处理各种字符串数据,为开发和数据分析提供强大支持。

    上一篇:python爬虫工作的前期准备
    下一篇:正则表达式的学习(2)一些干货

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年03月29日 10时11分31秒