Tôi đang cố gắng khớp văn bản như sp { ...{...}... }
, trong đó các dấu ngoặc nhọn được phép lồng. Đây là những gì tôi có cho đến thời điểm này:Regex với biểu thức đệ quy để khớp với niềng răng lồng nhau?
my $regex = qr/
( #save $1
sp\s+ #start Soar production
( #save $2
\{ #opening brace
[^{}]* #anything but braces
\} #closing brace
| (?1) #or nested braces
)+ #0 or more
)
/x;
Tôi không thể làm cho nó khớp với văn bản sau đây: sp { { word } }
. Bất cứ ai có thể nhìn thấy những gì là sai với regex của tôi?
Chỉ cần những gì tôi cần. –
Gần như tôi có thể nói, regex không cho phép khoảng trống xung quanh niềng răng (xin lỗi cho vần điệu) nên trường hợp thử nghiệm sẽ thất bại. Có chuyện gì thế? – tripleee
Hmmm ... Điều này kết thúc mãi mãi cho một số trận đấu một phần, như thế này: 'sp {word {(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa)}'. –