Python - zwiększenie wartości liczb w tekście poprzez regex

0

Jak zmienić przykładowy tekst poprzez wyrażenia regularne:

writeline

[1] - one
 [2] - two

wer [3] - three
end
#pierwszy sposób
result = re.sub(r'\D', "", text)
print('result:\n' + result)

#drugi sposób
matchObj = re.match( r'(\d+)', text)
#matchObj = re.search( r'(\d+)', text)
print(matchObj.groups())

Czy idzie może sposobem pierwszym zwiększyć wartość liczb?

Jeśli nie, to w jaki sposób to zrobić?

1

Chcesz zwiększyć wartości tylko liczb, czy także "tekstu po pauzie" ?

0

Tylko liczby zwiększyć, czy zrobić inne obliczenia podobne!

1

Proszę bardzo ;)

import re
tekst="""writeline
 
[1] - one
 [2] - two
 
wer [3] - three
end
"""

def zmien(x):
	for i in x.groups():
		return "["+str(int(i)+1)+"]"
	
wyrazenie="\[([0-9]*?)\]"

print re.sub(wyrazenie,zmien,tekst)

Mam nadzieję, że to jest to o co chodziło :)

1

Nie znając Pythona wykombinowałem coś w stylu:

re.sub(r'(\d+)', lambda x: str(int(x.group(0)) + 1), "abba 123")

Co jak na moją skromną wiedzę jest odpowiednikiem takiego kodu w Ruby (który ja preferuję i znam dość dobrze):

"abba 123".gsub(/\d+/) {|m| m.to_i.succ.to_s }

1 użytkowników online, w tym zalogowanych: 0, gości: 1