Tôi muốn điền các biến regex bằng chuỗi.Cách điền một chuỗi regex với các tham số
import re
hReg = re.compile("/robert/(?P<action>([a-zA-Z0-9]*))/$")
hMatch = hReg.match("/robert/delete/")
args = hMatch.groupdict()
biến args bây giờ là một mệnh đề với {"action": "delete"}.
Làm cách nào tôi có thể đảo ngược quá trình này? Với args dict và mẫu regex, làm thế nào tôi có thể lấy chuỗi "/ robert/delete /"?
có thể có chức năng giống như thế này?
def reverse(pattern, dictArgs):
Cảm ơn bạn
Nếu bạn có một cuốn từ điển các giá trị mô tả chuỗi của bạn để mở rộng mà bạn quan tâm đến nó ... Tại sao bạn sẽ cần một regex để xây dựng lại chuỗi đó? Bạn đã có tất cả các bit tạo nên sự khác biệt. Chỉ cần viết một hàm nhận các bit đó và tạo một chuỗi. (Nói cách khác, không có điều này là không thể và bạn có thể lãng phí thời gian của bạn đang cố gắng.) – Tomalak
Tôi muốn tính năng này "" để thực hiện một chức năng như đảo ngược() được sử dụng trong Django để có được một chuỗi URL. Có thể Django chỉ là "brute-lực lượng" mô hình với args? – 0xBAADF00D
Nếu ở tất cả, đó là một điều Python, không phải là một điều Django. Nhưng quan điểm của tôi là vậy. Làm thế nào bạn sẽ đảo ngược, ví dụ, '"/robe [hoặc] t?/(? P ((?! Foo) [a-zA-Z0-9] *)) "? Không có cách nào để đi từ một danh sách các trận đấu trở lại chuỗi ban đầu bởi vì regex chứa các phần tùy chọn và có điều kiện phụ thuộc vào nhau. Vì vậy, hoặc là bạn định nghĩa một tập hợp con regex cực kỳ hẹp * được phép và viết một trình phân tích cú pháp cho điều đó, có thể vẫn thiếu một số trường hợp phụ và hạn chế nghiêm trọng bản thân bạn - hoặc bạn dành nhiều thời gian hiệu quả hơn. ;) Regex phù hợp là một con đường một chiều. –
Tomalak