正则表达式

关注公众号 jb51net

关闭
首页 > 网络编程 > 正则表达式 > 正则表达式贪婪词

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

作者:叩叮ING

正则表达式一般趋向于最大长度匹配,就是贪婪模式,下面这篇文章主要介绍了正则表达式中常见的贪婪词有哪些举例的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

1. *

import re
text = "aaaa"
pattern = re.compile(r'a*')
result = pattern.search(text)
print(result.group())  # 输出: aaaa

2. +

import re
text = "aaaa"
pattern = re.compile(r'a+')
result = pattern.search(text)
print(result.group())  # 输出: aaaa

3. ?

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

4. {n,}

import re
text = "aaaa"
pattern = re.compile(r'a{2,}')
result = pattern.search(text)
print(result.group())  # 输出: aaaa

5. {n,m}

import re
text = "aaaa"
pattern = re.compile(r'a{2,3}')
result = pattern.search(text)
print(result.group())  # 输出: aaa

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

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

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

总结

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

您可能感兴趣的文章:
阅读全文