가 나는 재이며 그 값이 마이너스 10 로 값을 대체 할 통해 정규 표현식이 값 :파이썬 대체 재 그룹
re.compile(r'<stuff[^\>]*translate\((?P<x>\d*),(?P<y>\d*)\)"/>')
내가 X 및 Y기를 교체 할있다. 이렇게하려면 re.sub
을 사용하고 함수를 전달하고 싶습니다. 그러나이 함수에서 가장 쉽게 x와 y 값을 빼고 입력 값과 동일한 문자열을 어떻게 만들 수 있습니까?
가 나는 재이며 그 값이 마이너스 10 로 값을 대체 할 통해 정규 표현식이 값 :파이썬 대체 재 그룹
re.compile(r'<stuff[^\>]*translate\((?P<x>\d*),(?P<y>\d*)\)"/>')
내가 X 및 Y기를 교체 할있다. 이렇게하려면 re.sub
을 사용하고 함수를 전달하고 싶습니다. 그러나이 함수에서 가장 쉽게 x와 y 값을 빼고 입력 값과 동일한 문자열을 어떻게 만들 수 있습니까?
re.sub
docs은 대체 기능을 사용하는 좋은 예입니다. 귀하의 경우, 이것은 작동합니다 :
import re
def less10(string):
return int(string) - 10
def replacer(match):
return '%s%d,%d%s' % (match.group('prefix'),
less10(match.group('x')),
less10(match.group('y')),
match.group('suffix'))
print re.sub(r'(?P<prefix><stuff[^>]*translate\()(?P<x>\d*),(?P<y>\d*)(?P<suffix>\)/>)',
replacer,
'<stuff translate(100,200)/>')
은 [이] 한 번 봐 (http://stackoverflow.com/questions/2763750/how-to-replace-only-part-of를 타고 -the-match-with-python-re-sub) 대답은 더 깨끗한 방법을 위해 – FujiApple