好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

python表达式超过限制还能否换行

记得每次做试卷的时候,都要对末尾800字的界限感觉忧伤,毕竟想要码到那么多字数也不是容易的事情。然而在python中,由于有字符的限制,如果一个表达式超出了限制,那也不是好事情,处理起来会比较困难。那么,python3表达式超过限制还能换行吗?今天小编就这个问题带领大家一起探索。

Source Text:

<a?href="###"?data-sname="微信"?data-icon="http://b.hiphotos.bdimg测试数据/wisegame/pic/item/e126cffc1e178a8230ff5ad9f103738da877e88c.jpg"?data-type="soft"?data-size="36598395"?data-versionname="6.3.13.49"?data-versioncode="740"?data-package="com.tencent.mm"?data-download_url="http://gdown.baidu测试数据/data/wisegame/faf7795f5e16ff68/weixin_740.apk"?data-updatetime="2016-02-03"?class="event-exe-install?download?s-index-icon"?tjurl="http://as.baidu测试数据/a/download?tj=game_8828716_微信&docid=8828716&pid=2786482313&pre=web_am_rank&d=2&f=rank_3000_1">安?装</a>

匹配到里面的data-sname,data-versionname等信息,验证的表达式如下:

<a\shref="###" data-sname="(.*)"\sdata-icon="(.*)"\sdata-type="(.*)"\sdata-size="(.*)"\sdata-versionname="(.*)"\sdata-versioncode="(.*)"\sdata-package="(.*)"\sdata-download_url="(.*)"\sdata-updatetime="(.*)"(.*)</a>

Python实现如下:

line?=?sourcetext??#?太长不复制了,就是上面提到的
r=<a\shref="###"data-sname="(.*)"\sdata-icon="(.*)"\sdata-type="(.*)"\sdata-size="(.*)"\sdata-versionname="(.*)"\sdata-versioncode="(.*)"\sdata-package="(.*)"\sdata-download_url="(.*)"\sdata-updatetime="(.*)"(.*)</a>
?
p?=?re.search(r,?line)
print?p.group(0)

问题是这个表达式太长了,超过了PEP8要求的每行79个字符,请问有没有什么办法让表达式支持换行又不影响匹配?

 

解决:

python 语法有 \ 续行 符号,但不适合这个情况。超过80个字符的,切分成短字符串,再连接起来。

 

小伙伴们看着最后的代码很长有点产生退却的想法,其实只是对正则表达式进行可拆分,去掉了表达式就是一个框架啦,感兴趣的小伙伴快试试吧。

查看更多关于python表达式超过限制还能否换行的详细内容...

  阅读:18次