Vấn đề của tôi khá đơn giản.Làm cách nào để re.sub() một nhóm đối sánh tùy chọn sử dụng regex bằng Python?
Tôi có một URL, đôi khi nó kết thúc bằng các ký tự cụ thể. Nếu có mặt, tôi muốn thêm chúng vào URL mới của tôi.
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"
Tất nhiên, tôi không thể chỉ làm re.sub("url", "new_url", test)
, vì ví dụ nó có thể là "url/123" và trong trường hợp này tôi không muốn thực hiện sửa đổi.
Cảm ơn bạn. Bạn có khuyên tôi sử dụng mô-đun regex mọi lúc hay chỉ trong trường hợp này? Sự khác nhau chính giữa re và regex là gì? – Delgan
@ user3779937, Không, tôi không khuyên bạn nên sử dụng nó mọi lúc. 'regex' không phải là một mô-đun thư viện chuẩn; bạn cần cài đặt riêng. – falsetru