Python学习笔记

  • Python正则表达式:

1.(?<=re):向后匹配positive lookbehind assertion,可以实现更精准的定位

eg. 匹配“=”后面的字符串

s='1234=python1'

print s.findall('(?<==)\w+'

结果:python1

2.(?=re):向前匹配

eg.匹配"="之前的字符串

s='1234=python1'

print s.findall('\w+(?==)'

结果:1234

注:向前匹配和向后匹配的位置不能放反,不然pipeibu


3.findall()函数:以字符串列表的形式,返回匹配的不重叠的字符串。如果正则表达式里有多个组(group),则返回一个元组的列表,此时列表的每个元素是一个按从左到右的组(group)的顺序的元组。当匹配不到,返回空列表[ ]。(python英文手册翻译而来,恐有差异)

eg.s = 'python'

print s.findall('python')结果:['python']

print s.findall('(p)ython')结果:['p'] (注:组是按括号从左到右的顺序来的,跟group(0)不一样)

print s.findall('(p)ytho(n)')结果:[('p', 'n')]

print s.findall('((p)ytho(n))')结果:[('python', 'p', 'n')]


  • 错误:TypeError: getProjectIds() takes exactly 2 arguments (3 given)

原因是调用getProjectIds方法 的时候,显式传了self:self.getProjectIds(self, msg),在调用时python自动会把自身(self)传递过去

解决办法:1.调用时不加self:self.getProjectIds( msg)

2.将getProject方法声明为静态方法,即加上@staticmethod,则可如此调用:self.getProjectIds(self, msg)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值