设为首页 收藏本站
查看: 917|回复: 0

[经验分享] python字符串解析,利用string模块和正则表达式re模块

[复制链接]

尚未签到

发表于 2017-5-8 09:18:57 | 显示全部楼层 |阅读模式
  1.python字符串通常有单引号('...')、双引号("...")、三引号("""...""")或('''...''')包围,三引号包含的字符串可由多行组成,一般可表示大段的叙述性字符串。在使用时基本没有差别,但双引号和三引号("""...""")中可以包含单引号,三引号('''...''')可以包含双引号,而不需要转义。
 
2. 用(\)对特殊字符转义,如(\)、(')、(")。
 
3.常用字符串内置函数
  1)str.count()  //返回该字符串中某个子串出现的次数
  2)str.find()   //返回某个子串出现在该字符串的起始位置
  3)str.lower()  //将该字符串全部转化为小写
  4)str.upper()  //转为大写
  5)str.split()  //分割字符串,返回字串串列表,默认以空格分割
  6)len(str)     //返回字符串长度
 
  例如:
  >>> str = 'Hello, world'
  >>> str.count('o')
  >>> 2
  >>> str.find('lo')
  >>> 3
  >>> str.lower()
  >>> 'hello, world'
  >>> str.upper()
  >>> 'HELLO, WORLD'
  >>> str.split()
  >>> ['Hello,', 'world']
  >>> str.split(',')
  >>> ['Hello', ' world']
  >>> len(str)
  >>> 13
  >>> str
  >>> 'Hello, world'
 
  以上所有操作都不会改变字符串本身!
 
4.正则表达式,re模块
  import re
  常用函数:
  1)compile():   //将正则表达式字符串编译成正则re对象
  2)search()     //在目标字符串中匹配正则表达式
  3)match()      //从目标字符串第一个字符开始匹配正则表达
  search和match匹配成功返回MatchObject对象,失败返回None
 >>> p = re.compile('abc')
 >>> p.search('zabcy')
 <_sre.SRE_Match object at 0x2a95659030>
 不先编译成正则re对象也是可以的,上例也可以为:
 >>> re.search('abc','xabcy')
 <_sre.SRE_Match object at 0x2a95659098>
 
 compile还可加些标志位,例如:re.I(re.IGNORECASE)忽略大小写
 >>> p = re.compile('abc')
 >>> print p.search('xAbCy')
 None
 >>> p = re.compile('abc',re.I)
 >>> print p.search('xAbCy')
 <_sre.SRE_Match object at 0x2a9565a098>
 
 
 search和 match区别见下例:
 >>> p = re.compile('abc')
 >>> print p.search('xxxabcyyy')
 <_sre.SRE_Match object at 0x2a95659030>
 >>> print p.match('xxxabcyyy')
 None
 >>> print p.match('abcyyy')
 <_sre.SRE_Match object at 0x2a95659098>
 
 
  4)split()      //类似字符串内置函数split()
   区别在于:内置split()以确定字符串分割,而正则split函数以正则表达式分割字
 

例如:以空格(1个或者多个空格)分割:

 >>> p.split('a b   c  d')
 ['a', 'b', 'c', 'd']

而内置split分割的结果为:

 >>> 'a b   c  d'.split(' ')
 ['a', 'b', '', '', 'c', '', 'd']
 
  5)findall()     //返回目标字符串中匹配正则表达式中所有子串列表
 

 >>> p = re.compile('^([a-z]{2}):([1-9]{3}):(.+)$')
 >>> p.findall('as:123:a12')
 [('as', '123', 'a12')]

 上例中正则表达式的子串为3个用括弧括起的,分别为:'[a-z]{2}'、'[1-9]{3}'、'.+', 分别被 as、123、a12匹配,注意此返回的是匹配字符串元组的一维列表。
  以上比较常用的正则函数,更多用法请参照python手册。
 
5.字符串与数字相互转换,string模块
  import string
  string.atoi(str[,base])  //base为可选参数,表示将字符转换成的进制类型
  数字转换成字符串可简单了,直接用str()
 
6. 字符与ASCII转换
  char->ascii  ord()
  ascii->char  chr()
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-374465-1-1.html 上篇帖子: 写给Python初学者的心得体会总结,【090819】更新中...... 下篇帖子: python语言解析xml文件的常用的有两种方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表