python 正则表达式的处理,,1.基本用法#!/u


1.基本用法

#!/usr/bin/env python# coding=utf-8import re# example 1text ="fjsk test\t fjskd bar\t \ttest"regex = re.compile(‘\s+‘)print regex.split(text)# example 2email ="""    jfksdfasm@qq.com    test@test.com.cn    jfdskf@163.com    jkmiao@yahoo.123com    """pattern = r‘[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z.0-9]{2,6}‘regex = re.compile(pattern,flags=re.IGNORECASE)# get all print regex.findall(email)# get the first onem = regex.search(text)# print email[m.start():m.end()]print m# replace print regex.sub(‘RECORD‘,email)


显示:
jkmiao@sysucis:~/workplace/python/test$ python regex.py [‘fjsk‘, ‘test‘, ‘fjskd‘, ‘bar‘, ‘test‘][‘jfksdfasm@qq.com‘, ‘test@test.com.cn‘, ‘jfdskf@163.com‘, ‘jkmiao@yahoo.123com‘]None    RECORD    RECORD    RECORD    RECORD

2. 分组,返回元组

#example 3pattern = r‘([A-Z0-9._%+=]+)@([A-Z0-9.-]+)\.([A-Z.]{2,5})‘regex = re.compile(pattern,flags=re.IGNORECASE)m = regex.match(‘name@domain.suffix‘)print m.groups()print regex.findall(email)
# output
(‘name‘, ‘domain‘, ‘suffi‘)[(‘jfksdfasm‘, ‘qq‘, ‘com‘), (‘test‘, ‘gamil‘, ‘com‘), (‘jfdskf‘, ‘163‘, ‘com‘), (‘jkmiao‘, ‘yahoo.com‘, ‘cn‘)]

3.给分组加名称,返回字典

#example 4regex = re.compile(r"""                   (?P<userame>[A-Z0-9._%+-]+)                   @(?P<domain>[A-Z0-9.-]+)                   \.                   (?P<suffix>[A-Z0-9.]{2,4})                   """,flags=re.IGNORECASE|re.VERBOSE)m = regex.match("jkmaio@sysu.com")print m.groupdict()print regex.findall(email)

# output
jkmiao@sysucis:~/workplace/python/test$ python regex.py{‘domain‘: ‘sysu‘, ‘userame‘: ‘jkmaio‘, ‘suffix‘: ‘com‘}[(‘jfksdfasm‘, ‘qq‘, ‘com‘), (‘test‘, ‘gamil‘, ‘com‘), (‘jfdskf‘, ‘163‘, ‘com‘), (‘jkmiao‘, ‘yahoo.com‘, ‘cn‘)]

python 正则表达式的处理

相关内容

    暂无相关文章

评论关闭