Có thể viết cụm từ thông dụng khớp với mẫu lồng nhau xảy ra với số lần không xác định không? Ví dụ, một biểu thức chính quy có thể khớp với dấu ngoặc mở và đóng khi có một số dấu ngoặc mở/đóng không xác định được lồng trong các dấu ngoặc ngoài?Cụm từ thông dụng có thể được sử dụng để khớp với các mẫu lồng nhau không?
Ví dụ:
public MyMethod()
{
if (test)
{
// More { }
}
// More { }
} // End
nên phù hợp:
{
if (test)
{
// More { }
}
// More { }
}
Để trả lời rõ ràng câu hỏi này, trước hết cần phải xác định cụm từ: "biểu thức chính quy". – ridgerunner
@ridgerunner, Richard không cố gắng trả lời câu hỏi, vì vậy có thể nhận xét của bạn được giải quyết tốt hơn cho người nào đó tương tác. – ProfK
Từ sách, * cụm từ thông dụng * không thể làm điều đó, nhưng * biểu thức ngữ cảnh tự do * có thể.Từ các công cụ, các trình phân tích cú pháp biểu thức hiện đại sẽ gọi cụm từ 'regular expression' sử dụng chồng bên ngoài, có nghĩa là có thể quay lại, nghĩa là có thể recurse: đó là' context-free expressions' trong thực tế và như vậy bạn có thể làm điều đó như một một lớp với simili- [PCRE2] (http://www.pcre.org/) (PHP, Java, .NET, Perl, ...) hoặc [ICU] (http: //userguide.icu-project. org/strings/regexp) công cụ -compliant (Obj-C/Swift), thường với cú pháp '(?> ...)', hoặc các lựa chọn thay thế như cú pháp '(? R)' hoặc '(? 0)' . –