2009-02-05 28 views
21

Tôi đã thử một số công cụ regex như Regulator, Regulazy & RegexBuddy. Họ không làm những gì tôi muốn và họ mong đợi người dùng biết các biểu thức chính quy.có dễ sử dụng công cụ tạo của Regex không?

Tôi muốn có công cụ cho núm vú giả. Bạn nói với công cụ tôi cần một regex cho một cái gì đó như "phù hợp với bất cứ điều gì kết thúc với từ 'có' và nó có chứa ít nhất một lần xuất hiện của cụm từ '/ test /'" và nó tạo ra regex cho bạn.

Vì vậy, tôi có thể nhập yêu cầu của tôi bằng tiếng Anh đơn thuần hoặc tiếng Anh đơn thuần hoặc công cụ có tất cả các loại lựa chọn sẵn sàng và tôi chọn giữa chúng để tạo ra những gì tôi muốn quảng cáo.

Có công cụ nào hướng đến các nhà phát triển không? Tôi không tìm kiếm một thử nghiệm regex.

+0

Câu hỏi này khá liên quan: http://stackoverflow.com/questions/500839/regular-expression-compiler – Cerebrus

+5

Cá nhân, tôi thấy ý tưởng cố gắng lập trình mà không muốn tìm hiểu ngay cả cú pháp cơ bản nhất của ngôn ngữ bạn ' lập trình lại (và biểu thức chính quy * là * một ngôn ngữ) là một khái niệm kinh khủng. Không biết cái gì là tốt; không * muốn * để hiểu một cái gì đó bạn sẽ làm việc với thường xuyên là đáng sợ. –

+0

Regexes là ngôn ngữ lập trình. Tôi không nghĩ rằng nó có ý nghĩa để nói "Tôi không biết lập trình, nhưng tôi muốn viết regexes." Yêu cầu một cái gì đó để viết regexes cho bạn dựa trên tiếng Anh làm cho ý nghĩa nhiều như muốn một cái gì đó để viết mã PHP cho bạn dựa trên tiếng Anh. –

Trả lời

1

Tôi không chắc chắn công cụ như vậy tồn tại, vì chúng thường làm ngược lại:
Phân tích regexp và dịch nó bằng tiếng Anh đơn giản.

Giải pháp gần gũi nhất với nhu cầu của bạn sẽ được C# library này, cho phép bạn lập trình regexp một cách bán có thể đọc được:

Thay vì điều này:

const string findGamesPattern = 
@"<div\s*class=""game""\s*id=""(?<gameID>\d+)-game""(?<content>.*?)<!--gameStatus\s*=\s*(?<gameState>\d+)-->"; 

Bạn sẽ phải sử dụng ReadableRex:

Pattern findGamesPattern = Pattern.With.Literal(@"<div") 
    .WhiteSpace.Repeat.ZeroOrMore 

    .Literal(@"class=""game""").WhiteSpace.Repeat.ZeroOrMore.Literal(@"id=""") 

    .NamedGroup("gameId", Pattern.With.Digit.Repeat.OneOrMore) 

    .Literal(@"-game""") 

    .NamedGroup("content", Pattern.With.Anything.Repeat.Lazy.ZeroOrMore) 

    .Literal(@"<!--gameStatus") 

    .WhiteSpace.Repeat.ZeroOrMore.Literal("=").WhiteSpace.Repeat.ZeroOrMore 

    .NamedGroup("gameState", Pattern.With.Digit.Repeat.OneOrMore) 

    .Literal("-->"); 
+0

Bạn có thực sự ** thấy điều này có thể đọc được không? COBOL có dễ đọc hơn C hay chỉ tiết lộ chi tiết hơn không? –

+0

@Jan: err ... verbose. Nó là một hình thức tự tài liệu nghèo nàn. – VonC

8

txt2re có vẻ thực sự tốt. Tôi đã nhập "Chuỗi này chứa thử nghiệm trong đó và kết thúc bằng có" vào hộp, nhấp vào testyesgot a regular expression. Nó không tập trung vào việc dạy làm thế nào để xây dựng regex, nhưng nó cho bạn thấy mã perl để phân tích những gì bạn cần.

Sức mạnh thực sự của công cụ này là khả năng nhận ra những thứ như ngày, URL và thẻ. Tuy nhiên, khoảng trắng dường như không hoạt động tốt và dường như không xử lý bất kỳ sự lặp lại nào.

+0

+1 Rất hay. Nó thậm chí còn cung cấp mã mẫu để thực hiện regex bằng nhiều ngôn ngữ khác nhau. –

3

Đối với tôi, công cụ tốt nhất là RegexBuilder đó là mã nguồn mở và được viết bằng C#, vì vậy bạn có thể tùy chỉnh nó như nhiều như bạn muốn;)

Thưởng thức. ;)

+1

-1: theo quy định của tác giả, anh ta "không tìm kiếm người kiểm tra regex" – VonC

+0

liên kết bị hỏng. –

14

Tôi đã là người hâm mộ của ứng dụng Ultrapico's Expresso. Có một phần xây dựng giúp bạn (một chút) trong việc xây dựng các mảnh của biểu thức. Quan trọng hơn, nó sẽ giải thích một biểu thức hiện có (hoặc của riêng bạn hoặc từ thư viện biểu hiện được xây dựng trong) phần theo phần.

Nó cũng bao gồm phần kiểm tra và thay thế để xem và kiểm tra các biểu thức của bạn. Cuối cùng nó sẽ tạo ra biểu thức được định dạng cho C#, C++ hoặc VB.NET để bạn biết chính xác cách chèn biểu thức vào dự án của bạn.

Tốt nhất là miễn phí. Tôi đã sử dụng công cụ này để giúp tìm hiểu các biểu thức chính quy thực sự hoạt động như thế nào, đặc biệt là các biểu thức phức tạp. Không thể nói nó làm cho văn bản biểu hiện idiot bằng chứng nhưng nó đã chắc chắn làm cho biểu thức học tập dễ dàng hơn cho tôi ...

Công cụ này được đặc trưng trong một MSDN Webcast bởi Zain Naboulsi, và có thể đáng xem. Hy vọng điều này sẽ giúp, và chúc may mắn với hành trình Regex của bạn!

+0

Expresso thật tuyệt vời. Tôi sử dụng nó để tạo ra các biểu thức phức tạp trong Python. Điều duy nhất bạn cần phải nhớ trong trường hợp đó là: P cho các nhóm được đặt tên của bạn. – Soviut

1

Tôi cũng đang sử dụng Expresso và thấy nó khá tốt.Điều quan trọng nhất đối với tôi trong các công cụ này là xác thực và không hỗ trợ trực quan nhiều cho việc xây dựng các biểu thức. Tôi chỉ cần một công cụ để nhắc nhở tôi những điều, không thiết kế chúng cho tôi.

Dù sao, đây là một ứng dụng miễn phí khác mà tôi rất thích. Nó được gọi là Rad Software Regular Expression Designer. Hi vọng điêu nay co ich.

+0

Có, tôi đồng ý. Tôi chỉ đang cố đề xuất một giải pháp thay thế, ngay cả khi không trực tiếp hữu ích, rằng tôi chưa tạo ra bản thân mình. – Slavo

9

Cá nhân tôi thực sự thích Expresso http://www.ultrapico.com/Expresso.htm Giao diện khá sạch sẽ - cho phép bạn kiểm tra chức năng tìm kiếm và thay thế, có trợ giúp tốt, cộng với việc tạo biểu thức C# cho bạn nếu bạn muốn.

+0

Đợi ... để tiết lộ đầy đủ ở đây, Jan tạo ra một sản phẩm cạnh tranh có tên "RegexBuddy" (xem câu trả lời của chính mình ở trên). Tôi đã đề nghị Expresso cho một chuyên gia phát triển tuần trước, những người không biết gì về các biểu thức chính quy và thấy rằng người xây dựng rất hữu ích. Trong khi tôi áp dụng bạn muốn quảng cáo sản phẩm của riêng bạn, đánh dấu câu trả lời của tôi là rất khắc nghiệt. Bạn có thể đã không đồng ý và pimped sản phẩm của bạn một lần nữa. – paulecoyote

+0

Tôi đồng ý với Paul! Câu trả lời của Paul là tốt và phù hợp ở đây, do đó, đánh giá nó xuống là không OK và quảng bá sản phẩm thương mại của bạn thông qua SO không phải là quá. BTW, tôi thực sự thích Expresso và sử dụng nó rất thường xuyên cho RegEx phức tạp. –

2

Đối với web-based (người duy nhất dòng): http://txt2re.com/

chế độ ngoại tuyến (file văn bản đầy đủ càng tốt): Expresso

0

Tôi đã thanh toán trên RegexBuddy. Nó có một trình gỡ lỗi, visualizer và dịch regex sang tiếng Anh đơn giản.

0

Vâng nó vẫn còn rất nhiều công cụ phát triển, nhưng bạn có thể thử Textpression tại http://www.textpression.com Tiết lộ: Tôi là tác giả.

Chèn văn bản cho phép tạo regex trực quan bằng trình chỉnh sửa kéo và thả; không có cú pháp regex để tìm hiểu! Tại thời điểm viết Textpression vẫn còn trong Alpha, nhưng hãy cho tôi biết những gì bạn nghĩ!

Các vấn đề liên quan