findall
函数是 Python 中的正则表达式库 re
提供的一个方法,用于在字符串中查找所有与正则表达式匹配的子串
正则表达式的语法限制:findall
使用正则表达式作为匹配模式,因此需要遵循正则表达式的语法规则。例如,字符类、量词、分组等都需要符合正则表达式的规范。
贪婪和非贪婪匹配:findall
默认使用贪婪匹配,即尽可能多地匹配子串。如果需要非贪婪匹配(尽可能少地匹配子串),可以在正则表达式中使用问号 ?
表示。
转义字符:在正则表达式中,某些字符具有特殊含义,如 . * ? + ( ) [ ] { } | \ ^ $
等。如果需要在匹配模式中使用这些字符的字面值,需要进行转义,即在字符前加反斜杠 \
。
字符串编码:findall
函数处理字符串时,默认使用 ASCII 编码。如果需要处理其他编码的字符串,可以在正则表达式前加上 (?P<name>...)
形式的命名捕获组,并在 re.compile()
函数中指定 re.UNICODE
标志。
匹配顺序:findall
函数返回的结果是一个包含所有匹配子串的列表。如果有多个匹配子串,它们将按照在字符串中出现的顺序排列。
不匹配的情况:如果正则表达式与字符串之间没有匹配项,findall
将返回一个空列表。