Phần mềm xây dựng trực quan biểu thức chính quy?


17

Tôi thường xuyên cần tạo các biểu thức chính quy để sử dụng trong các tập lệnh (hầu hết khi được sử dụng sed), tuy nhiên, tôi thấy, đôi khi các biểu thức thông thường trở nên rất phức tạp và khó hiểu đối với tôi. Có phần mềm nào cho phép một người trực quan tạo mã cho các biểu thức thông thường, sau đó tôi có thể sao chép và dán vào tập lệnh không?

Câu trả lời:


9

Làm thế nào về Visual Regapi ?

http://laurent.riesterer.free.fr/regapi/sc Muff2.png


Bạn dùng cái gì
enzotib

1
Không phải tôi, đó là một liên kết trực tiếp từ trang chủ của dự án. Nhưng có vẻ như fvwm đã phổ biến vào cuối những năm 1990: s. Vui lòng so sánh với một cái gì đó như thế này fvwm.org/screencreen/desktops/Helmuth_Schmelzer-1366x768/ , tôi không biết fvwm của nhà nước ngày nay là gì (nhưng được sử dụng rất ổn định trước khi kde và gnome được phát minh).
Johan

1
Các trang trí cửa sổ trực tiếp ra khỏi Motif, từ đó đã được chuyển / sao chép trong các trình quản lý cửa sổ khác. vi.wikipedia.org/wiki/Motif_Window_Manager
Arcege


4

Hãy thử txt2regex và xem nếu nó giúp. Tôi chưa bao giờ sử dụng nó một cách nghiêm túc, nhưng nó có vẻ tuyệt vời khi tôi dùng thử.



2

Không chính xác những gì OP yêu cầu - nhưng tôi nghĩ nó có liên quan, vì vậy tôi sẽ đăng chéo Đề xuất cho biên tập viên Regex? # 549107 - Hỏi Ubuntu :

Đây là nỗ lực của tôi tại một công cụ GUI regex trực quan, được gọi là visRegexTester.py:

Nó có "xem trước trực tiếp" ("Tự động chạy lại") nếu bạn nhập và thay đổi trường "regex". Mặt khác, nó chỉ là một tập tin duy nhất; có một bình luận README khi bắt đầu - đây là một đoạn trích từ nó:

visRegexTester là một ứng dụng GUI Python / Tkinter nhỏ để hỗ trợ viết các biểu thức thông thường; đã thử nghiệm với Python 2.7 và 3.2. Trong thực tế, nó chỉ đơn thuần là một giao diện cho các chương trình dòng lệnh khác: nó khai thác thực tế là rất nhiều các chương trình Unix / GNU / Linux sử dụng như bộ vi xử lý regex trong thiết bị đầu cuối (ví dụ grep, sed, perl), có một cú pháp dòng lệnh tương tự trong ba các bộ phận:

(CHƯƠNG TRÌNH --ARGS) ('REGEX') (LỌC TÊN)

... Xem phần còn lại của nó để biết thêm. Ảnh chụp màn hình:

visRegexTester_01.png


1

Có, text2re.com phải gần với những gì bạn đang tìm kiếm. Văn bản nguồn đã cho, bạn có thể chọn tạo một biểu thức chính phù hợp với bất kỳ văn bản đã cho nào. Công cụ này cũng tạo ra mã để phân tán ngôn ngữ.

UI xây dựng regex (bước 2 trên trang) hơi khó học; lưu ý rằng việc di chuột qua bất kỳ tùy chọn nào sẽ giải thích đối tượng mà bạn phù hợp với:

giao diện người dùng công cụ regex


0

Tôi không chắc ý của bạn là gì khi "tạo mã trực quan" (ý bạn là công cụ GUI?). Nếu bạn giống như tôi, tôi thấy không thể làm việc với các biểu thức chính quy phức tạp, trừ khi tôi trình bày chúng theo cách có cấu trúc, vì vậy tôi có thể có được biểu diễn trực quan tốt hơn về logic.

Thực sự, sedchỉ là một ngôn ngữ kịch bản, và nó có thể được đặt ra như các ngôn ngữ khác, tức là. với một lệnh trên mỗi dòng. Dưới đây là một ví dụ điển hình về ý tôi muốn nói: Một regex sed hiển thị bố cục có cấu trúc .

Một tính năng rất tiện dụng sedlà lệnh gỡ lỗi của nó l, đó là một kết xuất dòng đơn giản hiển thị không gian mẫu với các dòng mới được nhúng hiển thị \n, v.v.

Vấn đề với sedkhông chỉ là các biểu thức thông thường. Nó có một bộ lệnh khó hiểu để lặp và kiểm tra điều kiện; việc này cần có thời gian để làm quen với ... Công cụ tốt nhất tôi từng tìm thấy để hỗ trợ tôi xử lý sedkhá đơn giản: Tôi đọc hướng dẫn chi tiết .. Từ đó, nó chỉ là một quá trình bắt đầu nhỏ và nhận được những việc đơn giản làm việc; sau đó xây dựng những thứ lớn hơn để tích lũy kinh nghiệm ..

Perl regex có một số tính năng hữu ích để hỗ trợ đưa ra các mẫu phức tạp; ví dụ. khả năng bỏ qua khoảng trắng trong biểu thức của bạn .. (Như một thách thức và đối với yếu tố expereince , tôi đã viết một sedtrình phân tích cú pháp để phân tích sedmã của mình để cho phép khoảng trắng đó ... PS. Tôi không cần nó ngay bây giờ; :) Trên thực tế chỉ cần đặt ra các lệnh, một lệnh trên mỗi dòng, gần như tốt như tính năng perl.

Công cụ tốt nhất để giúp bạn là: kinh nghiệm . ví dụ. Giải quyết các câu hỏi regex trên trang web này là một cách tuyệt vời để có được trải nghiệm đó ... Tôi cảm thấy rằng các công cụ GUI không thực sự giúp ích nhiều, vì chúng ức chế trải nghiệm ...

Tóm lại, các công cụ trợ giúp tốt nhất là kinh nghiệmbố cục có cấu trúc , và đọc hướng dẫn (chi tiết) ..

Tôi đã sử dụng từ "expereince" rất nhiều .. bởi ý tôi là hành động chuẩn bị các biểu thức chính quy (và trong trường hợp sed, bất kỳ logic lặp nào, v.v.) là yếu tố chính .. loại "Regex-Builder" công cụ; đừng viết regex cho bạn; họ chỉ kiểm tra nó, và họ chắc chắn sẽ không xử lý logic chương trình của sed , bởi vì đó không phải là một biểu thức chính quy .. (và bạn đã đặc biệt chỉ ra sed) ... Việc làm nổi bật cú pháp mà họ có thể cung cấp không giúp ích gì cho tôi . Mặc dù vậy, một trình soạn thảo có khớp khung tốt khá tiện dụng (tôi sử dụng emacs) ..


Tôi nghĩ sẽ không hại gì nếu bạn có một công cụ để thử nghiệm và thử nghiệm dễ dàng. (xây dựng lại emacs)
favadi

1
Tôi đã sử dụng emacs re-buildervà nó hoàn toàn không giúp tôi ... không phải ngày 1 ... Tất cả những gì cho tôi thấy là trong emacsđó cần thêm một hoặc hai dấu gạch chéo ngược, vì cách emacs đánh giá mọi thứ ... Bạn có thể thực hiện kiểm tra tương tự bằng cách đánh giá regex của bạn thông qua C-x C-e.. Nó không viết biểu thức cho bạn; bạn vẫn cần phải viết nó ... Và sau đó, có một emacshệ thống viết một biểu thức chính quy bằng cách sử dụng các từ mô tả .. (Tôi nghĩ rằng hệ thống giống như verbose đã chết với COBOL .. nhưng ngay cả COBOL cũng không hoàn toàn chết, chưa) .. và liên quan, bạn vẫn cần phải viết nó.
Peter.O
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.