今天,当爬虫碰巧想到初学者正则表达式时,我读了一篇非常好的文章。搜索并找到它。
Re模块
重新搜索
经常使用match=re.search(pat,str)形式。因为有可能无法匹配,所以if语句通常在re.search()之后使用。
重新匹配
Re.match与re.search类似,只是re.match从字符串的开头开始匹配。
常用的常规字符是指a、X、9等字符。匹配它们自己,而元字符不匹配它们自己,因为它们有特殊的含义,例如。{} [] | ().英文句点,匹配任何字符,不包括' n' w匹配' word '字符,[a-zA-Z0-9] W匹配非' word '字符b匹配' word '和' non-word '之间的边界s匹配单个制表符,形式[nrtf] S匹配非空白字符t,nr匹配制表符,换行符,return d匹配匹配匹配字符串开头的数字[0-9] $并在匹配字符串结尾重复
一次或多次,' * '零次或多次,'?零或一次
方括号[]
[]类似于或
方括号可以用来表示一组字符,因此[abc]匹配“a”或“b”或“c”。
分组提取括号()
有时候需要提取一部分匹配的字符,比如刚才的邮箱。我们可能需要用户名和主机名。此时,我们可以用()包装用户名和主机名,就像r'([w.-] )@([w.-])'一样。如果匹配成功,那么模式不会改变,但是我们可以使用match.group(1)和match。
查找所有和组
将()与findall()组合,如果包含一个或多个组,则返回元组列表。
添加re.search也是如此。
re.sub
Re.sub(pat,replacement,str)在字符串中搜索字符串匹配模式,然后用replacement替换它。替换可以包含1或2来代替对应的组,然后实现部分替换。