0

ファイルがあり、パターン テキストは(1A0IA:0.42722,1AYLA:0.47152). と交換したい(1A0IA,1AYLA)

私はこの方法でできることを知っています:

text文字列が含まれています(1A0IA:0.42722,1AYLA:0.47152)

expression 1 : reduced_text = re.sub(r':\d+\.\d+\,',r',',text) 
output : (1A0IA,1AYLA:0.47152)
expression 2 : reduced_text = re.sub(r':\d+\.\d+\)',r')',reduced_text) 
output : (1A0IA,1AYLA)

:float,正確には でのみパターンを置き換えたいのですが、この種の文字列ではなく、(ID:float,ID:float)を含むテキストがいくつか存在します: 。:float,(ID:float,ID:float)

次のようなことができる式はありますか?

(string1:0.42722,string2:0.47152) -> (string1,string2)

一つ目.{5}string 1; 2番目.{5}string 2

reduced_text = re.sub(r'\(.{5}:\d+\.\d+\,.{5}:\d+\.\d+\)',r'\(.{5}\,.{5}\)',text)
4

3 に答える 3

0

これを見てください:

import re
s = "(1A0IA:0.42722,1AYLA:0.47152)"
r = "([\d\w]{5}):[\d\.]+(,|\))"
re.sub(r, r'\1\2', s)
# '(1A0IA, 1AYLA)'
于 2013-10-22T06:42:39.283 に答える