Il mio problema è piuttosto semplice.Come re.sub() un gruppo di corrispondenza facoltativo usando regex in Python?
Ho un URL, a volte finisce con caratteri specifici. Se sono presenti, vorrei aggiungerli al mio nuovo URL.
test1 = "url#123"
test2 = "url"
r = re.sub(r"url(#[0-9]+)?", r"new_url\1", test1)
# Expected result: "new_url#123"
# Actual result: "new_url#123"
r = re.sub(r"url(#[0-9]+)?", r"new_url\1", test2)
# Expected result: "new_url"
# Actual result: "error: unmatched group"
Naturalmente, non posso fare re.sub("url", "new_url", test)
, perché ad esempio potrebbe essere "url/123" e in questo caso non voglio fare modifiche.
Grazie. Mi consigliate di usare il modulo regex tutto il tempo, o solo in questo caso? Quali sono le principali differenze tra re e regex? – Delgan
@ user3779937, No, non mi consiglia di usarlo tutto il tempo. 'regex' non è un modulo di libreria standard; è necessario installare separatamente. – falsetru