ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

正则表达式 Python for Data Analysis 笔记

2021-08-30 10:31:06  阅读:229  来源: 互联网

标签:regex Python Data Analysis re text print com gmail


import re

# 描述一个或多个空白符的regex是\s+
text = "foo bar\t baz \tqux"

regex = re.compile('\s+')
print(regex.split(text))  #  等于 re.split('\s+',text)
# ['foo', 'bar', 'baz', 'qux']

print(regex.findall(text)) # 匹配到的模式
#[' ', '\t ', ' \t']

text = """
Dave dave@google.com
Steve steve@gmail.com
Rob rob@gmail.com
Ryan ryan@yahoo.com
"""
pattern = r'[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}'
regex = re.compile(pattern,flags=re.IGNORECASE) # re.IGNORECASE 忽略大小写
print(regex.findall(text))
# ['dave@google.com', 'steve@gmail.com', 'rob@gmail.com', 'ryan@yahoo.com']

# search返回第一个,只告诉原字符串中的起始和结束位置
m = regex.search(text)
print(m) # <re.Match object; span=(6, 21), match='dave@google.com'>
print(text[m.start():m.end()]) # dave@google.com

# sub 将匹配到的字符串替换为指定字符串
print(regex.sub("REDACTED",text))
'''
Dave REDACTED
Steve REDACTED
Rob REDACTED
Ryan REDACTED
'''

pattern = r'([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})'
regex = re.compile(pattern,flags=re.IGNORECASE) # re.IGNORECASE 忽略大小写
m = regex.match('wesm@bright.com')
print(m.groups()) # ('wesm', 'bright', 'com')
print(regex.findall(text))
'''
[('dave', 'google', 'com'), 
('steve', 'gmail', 'com'), 
('rob', 'gmail', 'com'), 
('ryan', 'yahoo', 'com')]
'''
# sub可以通过\1、\2之类的特殊符号访问各匹配项中的分组
print(regex.sub(r'Username:\1, Domain:\2, Suffix:\3',text))
'''
Dave Username:dave, Domain:google, Suffix:com
Steve Username:steve, Domain:gmail, Suffix:com
Rob Username:rob, Domain:gmail, Suffix:com
Ryan Username:ryan, Domain:yahoo, Suffix:com
'''

# 这种正则表达式所产生的对象可以得到一个简单易用的带有分组名称的字典
pattern = r"""
(?P<username>[A-Z0-9._%+-]+)
@
(?P<Domain>[A-Z0-9.-]+)
\.
(?P<Suffix>[A-Z]{2,4})
"""
regex = re.compile(pattern,flags=re.IGNORECASE|re.VERBOSE) # re.IGNORECASE 忽略大小写
m = regex.match('wesm@bright.com')
print(m.groupdict())
'''
{'username': 'wesm', 'Domain': 'bright', 'Suffix': 'com'}
'''

 

标签:regex,Python,Data,Analysis,re,text,print,com,gmail
来源: https://www.cnblogs.com/nicole-zhang/p/15204766.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有