标题: [问题求助] python这个代码如何写? [打印本页]
作者: netdzb 时间: 2020-5-4 00:32 标题: python这个代码如何写?
AB[rb][qb][pc][oc][nd][ne][nf][og][oh][qh][rg][sf][ri][se][sb]
AW[qg][pg][of][pe][pd][qc][rc][sc][re][rf]
要求得到这个结果
rb,qb,pc,oc,nd,ne,nf,og,oh,qh,rg,sf,ri,se,sb // 打印第一行
qg,pg,of,pe,pd,qc,rc,sc,re,rf // 打印第二行
按照']['进行分割的话,前面后对不上啊?
作者: wujunkai 时间: 2020-5-4 06:46
回复 1# netdzb
正则表达式复制代码
作者: netdzb 时间: 2020-5-4 07:51
回复 2# wujunkai
这个表达式是什么意思?
作者: sxw 时间: 2020-5-4 08:01
使用 Raku(之前叫 Perl 6):- .comb(/ '[' <( \w+ )> ']' /).join(',').say for $=finish.lines;
-
- =finish
- AB[rb][qb][pc][oc][nd][ne][nf][og][oh][qh][rg][sf][ri][se][sb]
- AW[qg][pg][of][pe][pd][qc][rc][sc][re][rf]
复制代码
作者: netdzb 时间: 2020-5-4 08:17
回复 4# sxw
comb是一个模块吗?
代码能否解释一下,谢谢!
作者: netdzb 时间: 2020-5-4 08:20
回复 4# sxw
<( \w+ )> 这个表示什么意思?
作者: ivor 时间: 2020-5-4 08:21
python3.x- import re
- str = """AB[rb][qb][pc][oc][nd][ne][nf][og][oh][qh][rg][sf][ri][se][sb]
- AW[qg][pg][of][pe][pd][qc][rc][sc][re][rf]"""
- for i in str.split('\n'):
- s = re.findall("\[(.*?)\]", i)
- print(','.join(s))
复制代码
作者: netdzb 时间: 2020-5-4 08:30
回复 7# ivor
[] 里面是a-s的小写字母,如果超越范围就报错退出。
该怎么改?
作者: ivor 时间: 2020-5-4 08:53
本帖最后由 ivor 于 2020-5-4 09:10 编辑
- import re
-
- str = """AB[rb][qb][pc][oc][nd][ne][nf][og][oh][qh][rg][sf][ri][se][sb]
- AW[qg][pg][of][pe][pd][qc][rc][sc][re][rf]"""
- for i in str.split('\n'):
- if (re.search("\[[a-s]*[t-z]+[a-s]*\]",i)): #检测到t-z字母则抛出UserWarning异常
- raise UserWarning
- s = re.findall("\[([a-s]+)\]", i)
- print(','.join(s))
复制代码
作者: sxw 时间: 2020-5-4 21:31
回复 5# netdzb
comb 是一个函数, 接收一个正则表达式, 会过滤下来所有匹配的字符串
作者: sxw 时间: 2020-5-4 21:32
回复 6# netdzb
<( 表示匹配的开始, )> 表示匹配的结束。合起来表示 ,只有在 <( 和 )> 之间的字符串才会保留下来。
作者: netdzb 时间: 2020-5-5 04:12
回复 11# sxw
\w+表示什么? 是表示小写字母w以后的字母吗?
作者: wujunkai 时间: 2020-5-5 12:18
回复 12# netdzb
我还是建议你先系统地学完正则表达式,再来问
作者: netdzb 时间: 2020-5-5 13:20
回复 13# wujunkai
他贴的是perl关系的正则,和python的规则不一样。
作者: wujunkai 时间: 2020-5-5 21:55
本帖最后由 wujunkai 于 2020-5-5 22:25 编辑
回复 14# netdzb
可能在操作细节上会有出入,但\w和+的含义应该是不会变的
https://www.cnblogs.com/tina-python/p/5508402.html
作者: Gin_Q 时间: 2020-5-10 15:29
开始学Python了!- >>> import re
- >>> a
- 'AB[rb][qb][pc][oc][nd][ne][nf][og][oh][qh][rg][sf][ri][se][sb]'
- >>> b=re.findall('[a-z]{2}',a)
- >>> b
- ['rb', 'qb', 'pc', 'oc', 'nd', 'ne', 'nf', 'og', 'oh', 'qh', 'rg', 'sf', 'ri', 'se', 'sb']
- >>> ''.join(b)
- 'rbqbpcocndnenfogohqhrgsfrisesb'
- >>>
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |