0

次の形式になるデータがあります。

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')

最後の数字の繰り返しを防ぐために正規表現に修正を加えることはできますか?

切り捨てるのは簡単なことだと思いますが、正規表現を正しくしたいと思います。追加情報: 'Blar=' は常に同じですが、この例では 'ahoymatey' の後に続くテキストは何でもかまいません。

理想的な解決策は、「Blar=」に続く N 個の数字を指定できるようにすることです。しかし、最後の数字を繰り返さないようにできれば、わくわくします。

4

2 に答える 2

1

非キャプチャ埋め込みグループを使用する

blar = re.search("Blar=(-?\d+\.\d+)((?:,-?\d+\.\d+)+)", x)
blar.groups()

('-22.0546665252602',',0.977496828218,0.793335875166,30.98755066254,-0.7838067629')

于 2013-05-25T18:03:18.123 に答える