Python/Pandas(十四)-字符串与正则
2017-01-06 20:12
465 查看
split拆分常和strip使用
in, find, index 子串定位
find index 的区别是: 如果找不到字符串,index将会引发一个异常, 而不是返回-1
count 返回子字符串出现的次数
replace用于将制定模式替换为另一个模式,也常常用于删除模式,传入空字符串
调用re.split正则表达式会先被编译,然后再在text上调用split方法。可以用re.compile自己编译regex以得到一个可以重用的regex对象
如果希望得到匹配到的所有模式,使用findall
findall 返回字符串中所有的匹配项
search 只返回第一个匹配项
match 只匹配字符串的首部
sub 来替换指定的字符串
groups 返回模式匹配的一组
findall 返回一个元组列表
val='a,b,guido' val.split(',') ['a', 'b', 'guido']
pieces=[ x.strip() for x in val.split(',')] pieces ['a', 'b', 'guido']
'::'.join(pieces) 'a::b::guido' first,second,third=pieces first+'::'+'::'+second+'::'+third 'a::::b::guido'
in, find, index 子串定位
find index 的区别是: 如果找不到字符串,index将会引发一个异常, 而不是返回-1
'guido' in val True
val.index(',') 1 val.find(':') -1 val.find(',') 1 val.inde(':') ValueError Traceback (most recent call last) <ipython-input-162-280f8b2856ce> in <module>() ----> 1 val.index(':') ValueError: substring not found
count 返回子字符串出现的次数
replace用于将制定模式替换为另一个模式,也常常用于删除模式,传入空字符串
val.replace(',','::') val.replace(',','')
正则表达式
re模块的函数可以分为三个大类: 模式匹配,替换以及拆分import re text="foo bar \t baz \tqux" re.split('\s+',text)
调用re.split正则表达式会先被编译,然后再在text上调用split方法。可以用re.compile自己编译regex以得到一个可以重用的regex对象
regex=re.compile('\s+') regex.split(text)
如果希望得到匹配到的所有模式,使用findall
regex.findall(text) [' ', ' \t ', ' \t']
findall 返回字符串中所有的匹配项
search 只返回第一个匹配项
match 只匹配字符串的首部
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) regex.findall(text) ['dave@google.com', 'steve@gmail.com', 'rob@gmail.com', 'ryan@yahoo.com'] m=regex.search(text) m <_sre.SRE_Match object; span=(6, 21), match='dave@google.com'> text[m.start():m.end()] 'dave@google.com' print (regex.match(text)) None
sub 来替换指定的字符串
print (regex.sub('REDACTED',text)) Dave REDACTED Steve REDACTED Rob REDACTED Ryan REDACTED
groups 返回模式匹配的一组
pattern = r'([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})' regex=re.compile(pattern,flags=re.IGNORECASE) m=regex.match('wesm@bright.net') m.groups() ('wesm', 'bright', 'net')
findall 返回一个元组列表
regex.findall(text) [('dave', 'google', 'com'), ('steve', 'gmail', 'com'), ('rob', 'gmail', 'com'), ('ryan', 'yahoo', 'com')]
print (regex.sub(r'Usrname: \1, Domain:\2, Suffix:\3',text)) Dave Usrname: dave, Domain:google, Suffix:com Steve Usrname: steve, Domain:gmail, Suffix:com Rob Usrname: rob, Domain:gmail, Suffix:com Ryan Usrname: ryan, Domain:yahoo, Suffix:com
相关文章推荐
- python 学习记录(10)-字符串与正则表达式
- Python字符串及正则表达式
- Python练习代码 -- 字符串和正则表达式, 文件文件夹操作
- Python 正则表达式查找跟着或不跟着特定字符串的字符串
- Python 正则表达式查找不是某个字符的字符串
- Python正则表达式如何进行字符串替换
- python 正则表达式匹配字符串末尾的错误
- python使用正则搜索字符串或文件中的浮点数代码实例
- python 学习正则与文件读写 从字符串里面找出 邮箱正则
- Python 正则表达式验证字符串
- python 正则表达式:匹配字符串开头并打印
- python 3.3.3 字面量,正则,反斜杠和原始字符串
- Python开发技术详解-笔记_第06章-字符串与正则表达式
- python使用正则搜索字符串或文件中的浮点数代码实例
- Python从文件中读取字符串,用正则表达式匹配中文字符的问题
- python 字符串与正则表达式
- devi into python 笔记(六)正则表达式 原始字符串
- python正则表达式判断字符串是否是全部小写示例
- Python 正则表达式查找多个字符串中的一个
- Python 正则表达式验证字符串(可能带转义符)