Juzen

© Juzen | Powered by LOFTER
 

正则表达式

  • 正则表达式是对字符串操作的一种逻辑公式,亦是一个以简单直观方式通过寻找模式匹配的文本工具

  • 备选字符集[],量词{},分组()数据抽取及多规则模糊匹配。

  • re.match仅仅搜索从字符串开始的第一个匹配,当你向从任意位置匹配时,容易误用,最好总是使用re.search,re.search只会返回第一个匹配

  • 原始字符串r代表"raw",原始字符串不会将\字符解释成一个转义符。

  • re.findall返回列表,re.finditer返回生成器,两者并非返回match对象,而是依据正则表达式的内容以字符串或元组的形式返回匹配自身

  • ^指定字符串的开始,$指定字符串的结束。

  • ? <=> {0,1},+ <=> {1,},* <=> {0,},{M,N}边界包含。

  • match对象提供group、groups、groupdict方法,从维护角度看,命名分组十分有价值。若混合命名分组与非命名分组,非命名分组不会出现在由groupdict返回的字典中。

  • 回溯引用:\N,最多匹配前99个分组。

  • match = re.search(r"(?P<first_name>[\d]{3})-(?P<last_name>[\d]{4})","867-5309"),

    则:match.groupdict["first_name"]= '867'

  • re.sub允许从被替换的字符串中的正则表达式模式使用同样的回溯引用。

  • compile:返回一个已编译的正则表达式对象,该对象之后可以复用,大多数情况下并无很大的性能优势。

  • re.IGNORECASE:不区分大小写。

  • re.DOTALL:点匹配换行符。

  • re.MULTILINE:多行模式。

  • re.VERBOSE:详细模式,易于阅读。

  • re.DEBUG:调试模式。

  • \s匹配空白字符,\d匹配数字字符,\b匹配长度为0的子串,\w匹配任意单词字符。

评论