今天就跟大家聊聊有关怎么进行Python正则表达式分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
今天写爬虫偶然想到了初学正则表达式时候,看过一篇文章非常不错。检索一下还真的找到了。
re模块
re.search
经常用match = re.search(pat, str)的形式。因为有可能匹配不到,所以re.search()后面一般用if statement。
re.match
re.match和re.search很相似,只是re.match是从字符串的开头开始匹配。
常用正则字符意义
a, X, 9,等字符匹配自己, 元字符不匹配自己,因为有特殊意义,比如 . ^ $ * + ? { }[ ] \ | ( )
. 英文句号,匹配任意字符,不包含'\n'
\w 匹配'word'字符,[a-zA-Z0-9]
\W 匹配非'word'字符
\b 匹配'word'和'non-word'之间边界
\s 匹配单个whitespace字符,space, newline, return, tab, form [\n\r\t\f]
\S 匹配non-whitespace字符
\t, \n, \r 匹配tab, newline, return
\d 匹配数字[0-9]
^ 匹配字符串开头
$ 匹配字符串结尾
重复
‘+’ 一或多次, ‘*’ 零或多次, ‘?’ 零或一次
方括号[]
[]类似于or
Square brackets can be used to indicate a set of chars, so [abc] matches 'a' or 'b' or 'c'.
Group Extraction圆括号()
有时候需要提取匹配字符的一部分,比如刚才的邮箱,我们可能需要其中的username和hostname,这时候可以用()分别把username和hostname包起来,就像r'([\w.-]+)@([\w.-]+)',如果匹配成功,那么pattern不改变,只是可以用match.group(1)和match.group(2)来username和hostname,match.group()结果不变。
findall and groups
()和findall()结合,如果包括一或多个group,就返回a list of tuples。
给re.search加^之后是一样的。
re.sub
re.sub(pat, replacement, str)在str里寻找和pattern匹配的字符串,然后用replacement替换。replacement可以包含\1或者\2来代替相应的group,然后实现局部替换。
看完上述内容,你们对怎么进行Python正则表达式分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。