028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

python正则re模块-创新互联

欢×××陈师傅”

目前创新互联建站已为成百上千家的企业提供了网站建设、域名、虚拟主机网站运营、企业网站设计、路桥网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

re正则处理

正则定义

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

常用正则表达式的方法

特殊字符集

特殊字符 解释
.匹配除换行符之外的任何字符
^匹配字符串的开头
$匹配字符串的结尾
*匹配前面的字符0次或更多次,尽可能多的重复,ab*将匹配'a','ab'或者a后面加任意数量的b
+匹配前面的字符一次或更多次,ab+将匹配'ab'后加任意数量的b
?匹配前面的字符0次或一次,ab将匹配'a'或'ab'
*?,+?,??*,+,?都属于贪婪匹配,就是尽可能多的匹配,而有时我们希望以最少的模式匹配,可以在限定符之后加?表示以最少的方式匹配
{m}匹配前一个字符至少m次
{m,n}匹配前一个字符最少m次,最多n次
{m,n}?以非贪婪模式匹配前一个字符,最少m次,最多n次,并以尽可能少的方式匹配
\转义字符,将\后面的字符进行转义
[]表示一组字符,字符可以单个列出,也可以给定范围,如[abc]表示a或b或c,[a-z]表示26个小写字母中的任意一个,[^a-z]匹配非小写字母,[0-5][0-9]表示匹配00-59,特殊字符在[]也失去特殊意义,[(+ )]将匹配任何文字字符的'(',')','+',''
A丨B 匹配A或者B
()匹配括号内的正则,每个括号都是一个组,从左往右的括号,编号依次加一
\A匹配字符串的开头
\b只用以匹配单词的词首和词尾(退格符)
\B只在当前位置不在单词边界时匹配。
\d匹配任何Unicode的十进制数字,与[0-9]相同
D匹配任何非十进制的字符,与[^0-9]相同
\s匹配Unicode的空白字符,匹配ascii字符集中包含空格的字符,相当于[\t\n\r\f\v]
\S匹配不是空白字符的字符,相当于[^\t\r\n\f\v]
\w匹配字母数字下划线,相当于[a-zA-Z0-9_]
\W匹配非字母数字下划线,相当于[^a-zA-Z0-9]
\Z仅匹配字符串结尾
(?P<name>)给分组加一个别名,(?P<a>)给分组取别名为a,每个组名只能在正则表达式中定义一次
(?P=name)引用前面别名为name的分组匹配到的任何文本
(?<=)前向界定,表示你要匹配的字符串前面是某个字符串的时候才匹配,('(?<=abc)def','abcdef')当def前面是abc的时候才匹配
(?=)后向界定,表示你要匹配的字符串后面是某个字符串的时候才匹配,('abc(?=def)','abcdef')
(?非前向界定,表示你要匹配的字符串前面不是某个字符串的时候才匹配,('(?<=abc)def','abcdef')当def前面不是abc的时候才匹配
(?!)非后向界定,表示你要匹配的字符串后面不是某个字符串的时候才匹配,('abc(?=def)','abcdef')
(?(id/name)yes-patternno-pattern)

正则表达式方法

>>> def mat(m):
    if m.group(2)=='1234':
        return m.group(1)
    else:
        return '1234'

>>> re.sub(r'(\d+) (\d+)',mat,'123 1234qer')
'123qer'
>>> re.sub(r'(\d+) (\d+)',mat,'123 123qer')
'1234qer'

match对象

几个简单的实例

  1. 匹配前面是数字123的字符
    >>> re.search(r'(?<=123)\w+','123asd,wer').group(0) 'asd'

    2.匹配前面是数字后面是下划线的字符

    >>> re.search(r'(?<=123)\w+(?=_)','123asd_123wer').group(0)                
    'asd'

    3.匹配手机号码

    >>> re.match(r'1[3,5,7,8]\d{9}|','13573528479').group()                
    '13573528479'

    4.匹配电话号码

    >>> re.match(r'\d{3}-\d{8}|\d{4}-\d{7}','0531-82866666').group()                   
    '0531-8286666'

    5.匹配IP地址

    >>> re.match(r'\d+\.\d+\.\d+\.\d+','192.168.10.25').group()                    
    '192.168.10.25'

    6.匹配网易邮箱

>>> re.findall(r'\w+@163\.com|\w+@126\.com','wanger@163.com wanger@126.com')

['wanger@163.com', 'wanger@126.com']

7.匹配HTML文本

>>> re.match(r'<(\w*)><(\w*)>.*','

wahaha5354

').group() '

wahaha5354

'

欢迎各位关注本人微信公众号“没有故事的陈师傅”

python正则re模块

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:python正则re模块-创新互联
标题网址:http://www.tsicrk.com/article/cscojo.html

其他资讯

让你的专属顾问为你服务

1.6471s