Czy istnieje sposób bezpośredniego zastąpienia wszystkich grup przy użyciu składni wyrażenia regularnego?
Normalny sposób:
re.match(r"(?:aaa)(_bbb)", string1).group(1)
Ale chcę osiągnąć coś takiego:
re.match(r"(\d.*?)\s(\d.*?)", "(CALL_GROUP_1) (CALL_GROUP_2)")
Chcę natychmiast zbudować nowy ciąg z grup, które właśnie przechwycił Regex.
python
regex
regex-group
mc_kaiser
źródło
źródło
(r(r))r((r)((r)r))
takiej sytuacji?1(r2(r))r3(4(r)5(6(r)r))
.Przyjęta odpowiedź jest idealna. Dodałbym, że odniesienie do grupy jest prawdopodobnie lepiej osiągnięte przy użyciu następującej składni:
dla ciągu zastępczego. W ten sposób można obejść ograniczenia składniowe, w których po grupie może następować cyfra. Ponownie, to wszystko jest obecne w dokumencie, nic nowego, tylko czasami trudne do zauważenia na pierwszy rzut oka.
źródło