Ví dụ:Trình định lượng {0} có ý nghĩa trong một số tình huống không?
/(?: Foo) {0} bar/
tôi thấy cái gì như thế này trong câu trả lời khác. Lúc đầu, tôi nghĩ "nên là gì", nhưng sau đó, "OK có thể có ý nghĩa, một cái nhìn tiêu cực phía sau", do đó, Foo
không được phép trước bar
, nhưng điều này không hoạt động.
Bạn có thể xem số này here on Regexr: Chỉ khớp với bar
nhưng nó cũng khớp với số bar
trong Foobar
.
Khi tôi thêm một neo cho sự bắt đầu của hàng:
/^(?:Foo){0}bar/
nó hoạt động như tôi mong đợi. Nó chỉ phù hợp với bar
và không phải là bar
trong Foobar
.
Nhưng đó chính xác là hành vi tương tự như khi tôi chỉ sử dụng /bar/
hoặc /^bar/
.
Định lượng số {0}
chỉ là tác dụng phụ vô dụng, hay thực sự có một hành vi hữu ích cho điều đó?
Thật tuyệt vời, Kobi. Điều này chỉ hữu ích trong một động cơ có các chương trình con nhưng không phải là '(? (DEFINE))', tôi nghĩ đó chỉ là Ruby và có lẽ Python với mô-đun 'regex'. Thử nghiệm trong Ruby: '(? :(Foo)) {0} thanh \ g <1>' +1000! – zx81
Trong trường hợp bất kỳ ai quan tâm, không hoạt động trong Python với mô đun 'regex'. Nhưng đến với phương án này, nó hoạt động: '(? :(Foo) $ ^)? Bar (? 1)' – zx81