Có cụm từ thông dụng khớp với cụm từ thông dụng hợp lệ không?Regexp khớp với regexps hợp lệ
(Tôi biết có một số hương vị của regexps. Người ta sẽ làm.)
Có cụm từ thông dụng khớp với cụm từ thông dụng hợp lệ không?Regexp khớp với regexps hợp lệ
(Tôi biết có một số hương vị của regexps. Người ta sẽ làm.)
Nếu bạn chỉ muốn kiểm tra xem biểu thức chính quy có hợp lệ hay không, chỉ cần cố biên dịch nó với bất kỳ ngôn ngữ lập trình hoặc thư viện biểu thức chính quy nào mà bạn đang làm việc.
Phân tích cú pháp cụm từ thông dụng là không đáng kể. Với tư cách là tác giả của RegexBuddy, tôi đã bị chặn lại vài lần. Nếu bạn thực sự muốn làm điều đó, hãy sử dụng regex để mã hóa đầu vào và để logic phân tích cú pháp thành mã thủ tục. Tức là, regex của bạn sẽ khớp với một mã thông báo regex (^
, $
, \w
, (
, )
, v.v.) tại một thời điểm và mã thủ tục của bạn sẽ kiểm tra xem chúng có đúng thứ tự hay không.
Xin chào Jan, Regexpbuddy trông thật tuyệt vời. Thực sự phải sớm có được nó. Cám ơn bạn đã góp ý! – Thorsten79
Tùy thuộc vào mục tiêu của bạn tôi sẽ nói chắc chắn có thể.
Nếu bạn muốn lọc regexp từ đâu đó, nó có thể khó khăn vì biểu thức thông thường có tất cả các kích thước và hình dạng và chúng không bắt đầu và kết thúc bằng dấu gạch chéo.
Nếu bạn chỉ cần biết thời tiết hoặc không phải là regexp hợp lệ, có một cách khác. Tùy thuộc vào ngôn ngữ bạn đang sử dụng, bạn có thể thử/bắt
Nếu bạn có thể cụ thể hơn, tôi có thể thử và đưa ra câu trả lời đúng hơn, câu hỏi đặt ra là intruiging.
Thật không may, hầu hết các cụm từ thông dụng không hợp lệ đều không hợp lệ do dấu ngoặc đơn lồng nhau. Đây chính là loại chuỗi mà cụm từ thông dụng không thể khớp. (Được rồi, một số hệ thống biểu thức chính quy ưa thích có phần mở rộng đệ quy, nhưng điều đó hiếm)
Có thể bạn cần một trình phân tích cú pháp chứ không phải một regex. Regex là những công cụ mạnh mẽ, nhưng không phải là công cụ phân tích cú pháp. Ví dụ, chúng không phù hợp với các ngữ pháp lồng nhau.
Vâng, đó là một cách nói. Họ chỉ đơn giản là không thể làm ngữ pháp lồng nhau. – harms
Như đã nói, bạn không thể mô tả cụm từ thông dụng với cụm từ thông dụng do tính chất đệ quy của chúng. Bạn sẽ cần một ngữ cảnh miễn phí ngữ cảnh cho điều đó.
Nhưng điều gì sẽ là điểm có biểu thức chính quy như vậy? Nếu bạn chỉ muốn kiểm tra xem biểu thức chính quy có đúng không, bạn có thể chỉ cần thử sử dụng nó (Pattern.compile (regexp) trong Java) và nếu nó hét lên nó không hợp lệ.
Từ JavaScript Ngôn ngữ lập trình video 4 (trong số 4) Douglas Crockford :
/\/(\\[^\x00-\x1f]|\[(\\[^\x00-\x1f]|[^\x00-\x1f\\\/])*\]|[^\x00-\x1f\\\/\[])+\/[gim]*/
http://video.yahoo.com/watch/111596/1710658 vào khoảng -17,20.
Bạn muốn đưa ra một bản tóm tắt thay vì gửi cho tôi một liên kết video? –
@LFSR Tư vấn: Không, tôi không biết. Tôi đặt thông tin về regex trong câu trả lời của tôi. Phần còn lại của video không liên quan đến câu hỏi này. Tôi chỉ cung cấp thông tin trích dẫn. – kajaco
FF3 ném lên trên regexp như là cú pháp sai? – ThomasH
Có cụm từ thông dụng khớp với cụm từ thông dụng hợp lệ không?
Bằng cách xác định, nó khá đơn giản: Không.
Ngôn ngữ của tất cả regexes là khôngthường xuyên ngôn ngữ (chỉ cần nhìn vào ngoặc lồng nhau) và do đó không thể là một biểu hiện thường xuyên để phân tích nó.
+1 để có câu trả lời đúng và điểm chính xác. –
Tôi đặt cược ai đó có một kịch bản perl có thể làm điều đó anyway – Decko
Ai đó cần đọc "Godel Escher Bach; một Bím tóc vàng vĩnh cửu". –
+1 cho rùa xuống hết cỡ. – Gishu
Tại sao bạn muốn một regexp? Có lẽ có một cách khác để giải quyết vấn đề này. –