Hướng dẫn non greedy regex python - trăn regex không tham lam
Để bắt đầu, tôi không đề nghị sử dụng "*" trong regexes. Vâng, tôi biết, nó là dấu phân cách đa nhân vật được sử dụng nhiều nhất, nhưng nó vẫn là một ý tưởng tồi. Điều này là do, trong khi nó phù hợp với bất kỳ số lượng lặp lại nào cho nhân vật đó, "bất kỳ" nào "bao gồm 0, thường là thứ bạn muốn ném lỗi cú pháp cho, không chấp nhận. Thay vào đó, tôi đề nghị sử dụng dấu Tuy nhiên, nếu bạn thực sự cần sự lặp lại không màu xanh lá cây, tôi khuyên bạn nên tham khảo ý kiến Điều đó đang được nói, tôi sẽ rất cẩn thận với Tôi có một chuỗi (từ một tệp):
Làm thế nào tôi nhận được chuỗi:
Tôi muốn khớp với dòng tổng quan ( 0. Cách tốt nhất để đạt được điều này là gì.Tôi đã thử.*\ N, nhưng điều đó sẽ phù hợp với mọi thứ và sau đó là một dòng mới. Có cách nào để làm cho regex không xanh không? Tôi đã thử: 1 và tôi không nhận được bất kỳ trận đấu nàohỏi ngày 19 tháng 2 năm 2013 lúc 21:10Feb 19, 2013 at 21:10 Chris Muenchchris MuenchChris Muench 17.9K69 Huy hiệu vàng204 Huy hiệu bạc352 Huy hiệu Đồng69 gold badges204 silver badges352 bronze badges 3 Thêm 3.Để phù hợp cụ thể với dòng bắt đầu với "Tổng quan:", hãy sử dụng regex này:
Bộ điều chỉnh 4 cho phép 5 và 6 khớp với phần bắt đầu và kết thúc của các dòng thay vì toàn bộ chuỗi tìm kiếm. Lưu ý rằng không cần phải làm cho nó trở nên khó khăn vì 7 không khớp với NewLines trừ khi bạn sử dụng công cụ sửa đổi 8 - trên thực tế, làm cho nó trở nên khó khăn ở đây sẽ xấu cho hiệu suất.Đã trả lời ngày 19 tháng 2 năm 2013 lúc 21:13Feb 19, 2013 at 21:13 9 Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về các bộ định lượng không màu xanh lá cây (hoặc lười biếng) phù hợp với các yếu tố trước đó của chúng càng ít càng tốt.: in this tutorial, you’ll learn about the regex non-greedy (or lazy) quantifiers that match their preceding elements as few times as possible. Giới thiệu về các bộ định lượng không màu xanh lá cây (hoặc lười biếng) RegexTrong các biểu thức thường xuyên, các định lượng có hai phiên bản: tham lam và không tham lam (hoặc lười biếng). Trong hướng dẫn trước, bạn đã học được cách thức định lượng tham lam hoạt động. Để biến một bộ định lượng tham lam thành một bộ định lượng không tham lam, bạn có thể nối một dấu hỏi (
Ví dụ sau sử dụng bộ định lượng không màu xanh lá cây ( 3) để khớp với văn bản trong các trích dẫn (1):
Output:
Làm thế nào bộ định lượng không màu xanh lá cây (+?) Hoạt động. Đầu tiên, động cơ Regex tìm kiếm một trận đấu bắt đầu từ vị trí đầu tiên trong chuỗi. Bởi vì động cơ Regex không thể tìm thấy một trận đấu, nó tiếp tục tìm kiếm cho đến khi nó tìm thấy báo giá đầu tiên ( 2): Thứ hai, động cơ Regex tìm thấy một trận đấu cho quy tắc 3.Tuy nhiên, bộ định lượng không tham lam 3 chỉ khớp một lần, không nhiều lần đến cuối chuỗi như bộ định lượng tham lam (+ ).Và động cơ Regex ngay lập tức nhìn vào quy tắc tiếp theo trong mẫu, phù hợp với báo giá (Hồi):one time, not multiple times to the end of the string like the greedy quantifier (+ ). And the regex engine immediately looks at the next rule in the pattern, which matches a quote (“):Thứ ba, động cơ Regex lặp lại các bước thứ nhất và thứ hai bắt đầu từ vị trí sau trận đấu đầu tiên và trả về kết quả tiếp theo: Cuối cùng, động cơ Regex tiếp tục tìm kiếm cho đến khi kết thúc chuỗi: Bản tóm tắt
Bạn có thấy hướng dẫn này hữu ích không? |