正则表达式中常见的贪婪词有哪些举例详解

作者:

文章目录
  • 含义:匹配前面的元素零次或者多次。 示例:对于正则表达式 a*,在字符串 "aaaa" 中,它会匹配整个 "aaaa",因为它会尽可能多地匹配 a 字符。 代码示例(Python): import re text = “aaaa” pattern = re.compile(r’a*’) result = pattern.search(text) print(result.group()) # 输出: aaaa
  • 含义:匹配前面的元素一次或者多次。 示例:正则表达式 a+ 在字符串 "aaaa" 中,同样会匹配整个 "aaaa",不过它至少要匹配一次 a 字符。 代码示例(Python): import re text = “aaaa” pattern = re.compile(r’a+’) result = pattern.search(text) print(result.group()) # 输出: aaaa
  • 含义:匹配前面的元素零次或者一次。 示例:正则表达式 colou?r 可以匹配 "color" 和 "colour",u? 表示 u 这个字符可以出现零次或者一次。 代码示例(Python): import re text1 = “color” text2 = “colour” pattern = re.compile(r’colou?r’) result1 = pattern.search(text1) result2 = pattern.search(text2) print(result1.group()) # 输出: color print(result2.group()) # 输出: colour
  • 含义:匹配前面的元素至少 n 次。 示例:正则表达式 a{2,} 在字符串 "aaaa" 中,会匹配整个 "aaaa",因为它要求 a 至少出现 2 次。 代码示例(Python): import re text = “aaaa” pattern = re.compile(r’a{2,}’) result = pattern.search(text) print(result.group()) # 输出: aaaa
  • 含义:匹配前面的元素至少 n 次,但不超过 m 次。 示例:正则表达式 a{2,3} 在字符串 "aaaa" 中,会匹配前三个 a,即 "aaa",因为它尽量在 2 到 3 次的范围内进行最大匹配。 代码示例(Python): import re text = “aaaa” pattern = re.compile(r’a{2,3}’) result = pattern.search(text) print(result.group()) # 输出: aaa 贪婪字符会尽可能多地去匹配符合条件的字符,直到无法再匹配为止,因此会导致回溯问题,因此在实际应用中,应该避免使用贪婪字符。 如果想让贪婪字符变为非贪婪模式,只需在其后加上 ? 即可,如:*?、+?、??、{n,}?、{n,m}?, 此模式将会尽可能少的去匹配字符,但是可能无法达到预期结果,大家酌情选择。
  • 到此这篇关于正则表达式中常见的贪婪词有哪些举例的文章就介绍到这了,更多相关正则表达式贪婪词内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 正则表达式之 贪婪与非贪婪模式详解(概述) 详解正则表达式的贪婪模式与非贪婪模式 小议正则表达式效率 贪婪、非贪婪与回溯 [正则表达式]贪婪模式与非贪婪模式 轻松入门正则表达式之非贪婪匹配篇详解
  • 目录
    • 1. *
    • 2. +
    • 3. ?
    • 4. {n,}
    • 5. {n,m}
    • 总结

    • 含义:匹配前面的元素零次或者多次。
    • 示例:对于正则表达式 a*,在字符串 "aaaa" 中,它会匹配整个 "aaaa",因为它会尽可能多地匹配 a 字符。
    • 代码示例(Python)
    import re
    text = "aaaa"
    pattern = re.compile(r'a*')
    result = pattern.search(text)
    print(result.group())  # 输出: aaaa

    • 含义:匹配前面的元素一次或者多次。
    • 示例:正则表达式 a+ 在字符串 "aaaa" 中,同样会匹配整个 "aaaa",不过它至少要匹配一次 a 字符。
    • 代码示例(Python)
    import re
    text = "aaaa"
    pattern = re.compile(r'a+')
    result = pattern.search(text)
    print(result.group())  # 输出: aaaa

    • 含义:匹配前面的元素零次或者一次。
    • 示例:正则表达式 colou?r 可以匹配 "color" 和 "colour"u? 表示 u 这个字符可以出现零次或者一次。
    • 代码示例(Python)
    import re
    text1 = "color"
    text2 = "colour"
    pattern = re.compile(r'colou?r')
    result1 = pattern.search(text1)
    result2 = pattern.search(text2)
    print(result1.group())  # 输出: color
    print(result2.group())  # 输出: colour

    • 含义:匹配前面的元素至少 n 次。
    • 示例:正则表达式 a{2,} 在字符串 "aaaa" 中,会匹配整个 "aaaa",因为它要求 a 至少出现 2 次。
    • 代码示例(Python)
    import re
    text = "aaaa"
    pattern = re.compile(r'a{2,}')
    result = pattern.search(text)
    print(result.group())  # 输出: aaaa

    • 含义:匹配前面的元素至少 n 次,但不超过 m 次。
    • 示例:正则表达式 a{2,3} 在字符串 "aaaa" 中,会匹配前三个 a,即 "aaa",因为它尽量在 2 到 3 次的范围内进行最大匹配。
    • 代码示例(Python)
    import re
    text = "aaaa"
    pattern = re.compile(r'a{2,3}')
    result = pattern.search(text)
    print(result.group())  # 输出: aaa

    贪婪字符会尽可能多地去匹配符合条件的字符,直到无法再匹配为止,因此会导致回溯问题,因此在实际应用中,应该避免使用贪婪字符。

    如果想让贪婪字符变为非贪婪模式,只需在其后加上 ? 即可,如:*?+???{n,}?{n,m}?,

    此模式将会尽可能少的去匹配字符,但是可能无法达到预期结果,大家酌情选择。

    到此这篇关于正则表达式中常见的贪婪词有哪些举例的文章就介绍到这了,更多相关正则表达式贪婪词内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • 正则表达式之 贪婪与非贪婪模式详解(概述)
    • 详解正则表达式的贪婪模式与非贪婪模式
    • 小议正则表达式效率 贪婪、非贪婪与回溯
    • [正则表达式]贪婪模式与非贪婪模式
    • 轻松入门正则表达式之非贪婪匹配篇详解

    站内搜索