Tôi đang cố tạo biểu thức chính quy khớp với cụm từ thông dụng giữa hai dấu gạch chéo tiến. Vấn đề chính của tôi là các biểu thức chính quy có thể chứa các dấu gạch chéo về phía trước, được thoát bằng dấu gạch chéo ngược. Tôi cố gắng lọc chúng ra với một xác nhận lookbehind tiêu cực (chỉ phù hợp với dấu gạch chéo đóng nếu không có phản ứng dữ dội tại vị trí hiện tại), tuy nhiên, bây giờ tôi đang gặp vấn đề mà tôi không nhận được trận đấu, nếu regex chính nó thực sự kết thúc bằng dấu gạch chéo ngược thoát.Cụm từ thông dụng: Chuỗi trận đấu giữa hai dấu gạch chéo nếu chuỗi đó chứa dấu gạch chéo thoát
thử nghiệm chương trình:
#!/usr/bin/python
import re
teststrings=[
"""/hello world/""",
"""/string with foreslash here \/ and here\//""",
"""/this one ends with backlash\\\\/"""]
patt="""^\/(?P<pattern>.*)(?<!\\\\)\/$"""
for t in teststrings:
m=re.match(patt,t)
if m!=None:
print t,' => MATCH'
else:
print t," => NO MATCH"
đầu ra:
/hello world/ => MATCH
/string with foreslash here \/ and here\// => MATCH
/this one ends with backlash\\/ => NO MATCH
Làm thế nào tôi sẽ sửa đổi khẳng định chỉ đánh nếu có một phản ứng dữ dội duy nhất tại vị trí hiện tại, nhưng không phải là hai?
Hoặc có cách nào tốt hơn để trích xuất regex không? (Lưu ý, trong các tập tin thực tế tôi cố gắng phân tích các dòng chứa nhiều hơn chỉ là regex tôi có thể không chỉ đơn giản là tìm kiếm các dấu gạch chéo đầu tiên và cuối cùng trên mỗi dòng và nhận được tất cả mọi thứ Inbetween..)
Trong ví dụ thực tế của bạn, bạn có thể đã trốn thoát trước/sau là người đầu tiên/cuối cùng "thực" giảm? –
có, chuỗi sau regex có thể có các ký tự tùy ý, bao gồm dấu gạch chéo – Gryphius