200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 关于学习Python的一点学习总结(57->正则表达式及re模块中的一些函数)

关于学习Python的一点学习总结(57->正则表达式及re模块中的一些函数)

时间:2023-05-26 07:19:33

相关推荐

关于学习Python的一点学习总结(57->正则表达式及re模块中的一些函数)

关于这个正则表达式,我本人也是有点不完全懂,还在继续学习中。

97.re

1.正则表达式:

1.通配符:正则表达式可与多个字符串匹配,可使用特殊字符来创建这种正则表达式

例如:正则表达式'.ython'与字符串'python'和'jython'都匹配。它还与'qython'、'+ython'' ython'(第一个字符为空格)等字符串匹配,但不与'cpython'、'ython'等字符 串匹配,因为句点只与一个字符匹配,而不与零或两个字符匹配。

句点与除换行符外的任何字符都匹配,因此被称为通配符

2.特殊字符进行转义:普通字符只与自己匹配,但特殊字符的情况完全不同

例如:对字符串中的引号进行转义时所做的那样,在它前面加上一个反斜杠。因此,在这 个示例中,可使用模式'python\\.org',它只与''匹配。也可以使用原始 字符串,如r'python\.org'

3.字符集:用方括号将一个子串括起,创建一个所谓的字符集。而这样的字符集与其包含的 字符都匹配。

例如:'[pj]ython'与'python'和'jython'都匹配,但不与其他字符串匹配。

例如:'[a-z]'与a~z的任何字母都匹配。你还可组合多个访问,方法是依次列出它们;例 如'[a-zA-Z0-9]'与大写字母、小写字母和数字都匹配。

请注意,字符集只能匹配一个字符。

要指定排除字符集,可在开头添加一个^字符,例如'[ ^ abc]'与除a、b和c外的其 他任何字符都匹配。

4.二选一和子模式:管道字符(|),所需的模式为'python|perl';当只想用于模式的一部分 的时候,可以这样做:'p(ython|erl)'

5.可选模式和重复模式

re模块中的一些重要内容:

函 数 描 述compile(pattern[, flags])根据包含正则表达式的字符串创建模式对象search(pattern, string[, flags]) 在字符串中查找模式match(pattern, string[, flags]) 在字符串开头匹配模式split(pattern, string[, maxsplit=0])根据模式来分割字符串findall(pattern, string)返回一个列表,其中包含字符串中所有与模式匹配的子串sub(pat, repl, string[, count=0])将字符串中与模式pat匹配的子串都替换为replescape(string) 对字符串中所有的正则表达式特殊字符都进行转义

举例:

>>> array='python'>>> import re>>> re.search('p',array)<_sre.SRE_Match object; span=(0, 1), match='p'>>>> re.match('p',array)<_sre.SRE_Match object; span=(0, 1), match='p'>>>> arrays='htttps://pp.www'>>> re.findall('t',arrays)['t', 't', 't']>>> pat = '[a-zA-Z]+'>>> text = '"Hm... Err -- are you sure?" he said, sounding insecure.'>>> re.findall(pat,text)['Hm', 'Err', 'are', 'you', 'sure', 'he', 'said', 'sounding', 'insecure']>>> re.sub('p','y',arrays)'htttys://yy.www'>>> re.split('[,]+',arrays)['htttps://pp.www']>>> re.split('[.]+',arrays)['htttps://pp', 'www']>>> some_text = 'alpha, beta,,,,gamma delta'>>> re.split('[, ]+', some_text, maxsplit=2)#参数maxsplit指定最多分割多少次。['alpha', 'beta', 'gamma delta']>>> re.split('[, ]+', some_text, maxsplit=1)['alpha', 'beta,,,,gamma delta']>>> re.escape(arrays)'htttps\\:\\/\\/pp\\.www'>>> re.escape('But where is the ambiguity?')'But\\ where\\ is\\ the\\ ambiguity\\?'--------

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。