我有以下数据:
x='214.123123Blar=-22.0546665252602,0.977496828218,0.793335875166,30.98755066254,-0.7838067629 75,0.508399307091,0.540006004199,0.335122489689,700.696104558168ahoymatey=morestuff'
我的python解决方案很简单:
blar = re.search("Blar=(-?\d+\.\d+)((,-?\d+\.\d+)+)", x)
blar.groups()
这将返回:
('-22.0546665252602',',0.977496828218,0.793335875166,30.98755066254,-0.783806762975,0.508399307091,0.540006004199,0.335122489689,700.696104558168',',700.696104558168')
我能对regex做些什么修正来防止最后一个数字的重复吗?你知道吗
我意识到切掉它是微不足道的,但我更希望正则表达式是正确的。一些附加信息:“Blar=”总是相同的,但是在本例中,后面的文本“ahoymatey”可以是任何内容。你知道吗
理想的解决方案是允许我指定N个跟在“Blar=”后面的数字。但如果我能不让最后一个数字重复,我会很激动的。你知道吗
你的regexp是正确的。有三组(括号对),你在比赛中确实得到三组。你知道吗
regexp通常有无意义的组。实际上,一个好习惯是用Python命名它们:
使用非捕获嵌入组
('-22.0546665252602',',0.977496828218,0.793335875166,30.9875506654,-0.7838067629')
相关问题 更多 >
编程相关推荐