【发布时间】:2018-04-06 18:40:33
【问题描述】:
我有一个可以变化的字符串,但总是包含x={stuffNeeded}。
例如:n=1,x={y,z,w},erore={3,4,5} 或 x={y,z,w} 或 erore={3,4,5},x={y,z,w} 等
我正忙着弄清楚如何获得y,z,w。我最接近找到答案的依据是 Yatharth 在另一篇帖子 Regular expression to return all characters between two special characters 上的回答。
到目前为止,我在搜索中遇到了几乎可行的东西。测试是在http://rubular.com/r/bgixv2J6yF 和 python 中完成的。
这是在 python 中使用的:
i='n=1,x={y,z,w},erore={3,4,5}'
j='n=1,x={y,z,w}'
print re.search('x={(.*)}',i).group(1)
print re.search('x={(.*)}',j).group(1)
print re.search('x={(.*)}.',i).group(1)
print re.search('x={(.*)}.',j).group(1)
四种不同打印的结果:
'y,z,w'
'y,z,w},erore={3,4,5'
AttributeError: 'NoneType' object has no attribute 'group'
'y,z,w'
对于所有情况,需要的结果是'y,z,w',然后如果真的找不到x={*},我会放置一个错误捕获。
提前谢谢你。
【问题讨论】:
-
x={yz,w}是错字吗? -
赞成“一个时代的恶魔”这句话:D
-
@Ev.Kounis:这肯定是一个错字。谢谢