नियमित अभिव्यक्ति के निर्माण के लिए सॉफ्टवेयर?


17

मुझे अक्सर लिपियों में उपयोग के लिए नियमित अभिव्यक्ति बनाने की आवश्यकता होती है (ज्यादातर जब उपयोग किया जाता है sed), हालांकि, मुझे लगता है, कभी-कभी नियमित अभिव्यक्तियाँ मेरे लिए समझने और संपादित करने के लिए बहुत जटिल और कठिन हो जाती हैं। क्या कोई ऐसा सॉफ़्टवेयर है जो किसी को नियमित रूप से अभिव्यक्ति के लिए कोड बनाने की अनुमति देता है, जिसे मैं फिर स्क्रिप्ट में कॉपी और पेस्ट कर सकता हूं?

जवाबों:


9

विजुअल रेक्सएक्सप के बारे में कैसे ?

http://laurent.riesterer.free.fr/regexp/screenshot2.png


आप किस wm का उपयोग करते हैं?
enzotib

1
मुझे नहीं, जो कि प्रोजेक्ट होमपेज से एक सीधा लिंक है। लेकिन यह fvwm जैसा दिखता है जो 1990 के दशक के अंत में लोकप्रिय था। इस fvwm.org/screenshots/desktops/Helmuth_Schmelzer-1366x768/… जैसी किसी चीज़ के साथ तुलना करने के लिए स्वतंत्र महसूस करें , मुझे नहीं पता कि आज कौन सा राज्य fvwm है (लेकिन kde और सूक्ति का आविष्कार होने से पहले बहुत स्थिर होने के लिए उपयोग किया जाता है)।
जोहान

1
खिड़की की सजावट सीधे मोतिफ से बाहर है, जिसे तब से अन्य विंडो प्रबंधकों में पोर्ट / कॉपी किया गया है। en.wikipedia.org/wiki/Motif_Window_Manager
Arcege


4

Txt2regex आज़माएं और देखें कि क्या मदद करता है। मैंने कभी इसे गंभीरता से उपयोग नहीं किया है, लेकिन जब मैंने इसे आज़माया तो यह अच्छा लग रहा था।


3

नहीं है kodos आप स्टैंडअलोन ऐप्स पसंद करते हैं। हाल ही में मैं http://debuggex.com या http://www.regexper.com/ जैसे ऑनलाइन regex विज़ुअलाइज़र का उपयोग कर रहा हूं


2

ठीक नहीं है कि ओपी क्या पूछता है - लेकिन मुझे लगता है कि यह प्रासंगिक है, इसलिए मैं Regex संपादक के लिए पोस्ट की सिफारिश को पार करूंगा ? # 549107 - उबंटू से पूछें :

यहाँ एक दृश्य regex GUI उपकरण में मेरा प्रयास है, जिसे कहा जाता है visRegexTester.py:

यदि आप टाइप करते हैं और "रेगेक्स" फ़ील्ड बदलते हैं तो इसका "लाइव पूर्वावलोकन" ("ऑटो रेरून") होता है। अन्यथा यह सिर्फ एक ही फाइल है; शुरू में एक README टिप्पणी है - यहाँ से एक स्निपेट है:

visRegexTester नियमित अभिव्यक्ति के लेखन के साथ सहायता करने के लिए एक छोटा पायथन / टिंकर GUI अनुप्रयोग है; पायथन 2.7 और 3.2 के साथ परीक्षण किया गया। वास्तव में, यह केवल अन्य कमांड लाइन कार्यक्रमों के लिए एक इंटरफ़ेस है: यह इस तथ्य का फायदा उठाता है कि टर्मिनल में रेगेक्स प्रोसेसर के रूप में उपयोग किए जाने वाले बहुत से यूनिक्स / जीएनयू / लिनक्स प्रोग्राम (जैसे grep, sed)perl ), तीन में एक ऐसी ही कमांड लाइन सिंटेक्स है भागों:

(कार्यक्रम - शब्द) ('REGEX') (FILENAME)

... बाकी इसे और अधिक के लिए देखें। स्क्रीनशॉट:

visRegexTester_01.png


1

हां, text2re.com होना चाहिए जो आप खोज रहे हैं। स्रोत पाठ को देखते हुए, आप एक regex उत्पन्न करना चुन सकते हैं जो किसी दिए गए पाठ से मेल खाता है। उपकरण भाषाओं को नष्ट करने के लिए कोड भी बनाता है।

रेगेक्स बिल्डर यूआई (पेज पर चरण 2) सीखना थोड़ा मुश्किल है; ध्यान दें कि किसी भी विकल्प पर मँडराते समय वह वस्तु बताती है जिसके विरुद्ध आप मिलान कर रहे हैं:

regex उपकरण UI


0

मुझे यकीन नहीं है कि आप "विज़ुअल कोड बनाएं" से क्या मतलब है (क्या आपका मतलब जीयूआई उपकरण है?)। यदि आप मेरी तरह हैं, तो मुझे जटिल नियमित अभिव्यक्तियों के साथ काम करना असंभव लगता है, जब तक कि मैं उन्हें एक संरचित तरीके से नहीं रखता, इसलिए मुझे एक बेहतर दृश्य मिल सकता है तर्क का प्रतिनिधित्व है।

वास्तव में, sedयह सिर्फ एक स्क्रिप्टिंग भाषा है, और इसे अन्य भाषाओं की तरह रखा जा सकता है, अर्थात। प्रति पंक्ति एक कमांड के साथ। यहाँ मेरा जो अर्थ है उसका एक विशिष्ट उदाहरण है: संरचित लेआउट दिखाने वाला एक sed regex

sedइसकी डिबगिंग कमांड की एक बहुत ही आसान विशेषता है l, जो एक साधारण लाइन डंप है जो पैटर्न की जगह दिखाती है, जिसमें एम्बेडेड नईलाइन जैसे \n, आदि दिखाए जाते हैं ।

मुद्दा sedकेवल नियमित भाव नहीं है। इसमें लूपिंग और कंडीशन टेस्टिंग के लिए कमांड का एक फंकी क्रिप्टोकरंसी है; इसका उपयोग करने के लिए समय लगता है ... सबसे अच्छा उपकरण जिसे मैंने कभी-कभी मुझसे निपटने में सहायता करने के लिए पाया है sedवह काफी सरल है: मैंने मैनुअल को विस्तार से पढ़ा से उस से, यह केवल छोटे से शुरू करने और प्राप्त करने की एक प्रक्रिया है। काम करने वाली सरल चीजें; फिर अनुभव प्राप्त करने के लिए बड़ी चीजों का निर्माण करें ।।

पेर्ल रेगेक्स में जटिल पैटर्न बिछाने में सहायता करने के लिए कुछ उपयोगी विशेषताएं हैं; जैसे। आपकी अभिव्यक्ति में व्हॉट्सएप को नजरअंदाज करने की क्षमता .. (एक चुनौती के रूप में, और एक्सपेरिंस फैक्टर के लिए, मैंने इस तरह के व्हाट्सएप की अनुमति देने के लिए sedअपने sedकोड को पार्स करने के लिए एक पार्सर लिखा था ... पीएस। मुझे अब इसकी आवश्यकता नहीं है; अनुभव के कारण; :) वास्तव में केवल एक लाइन के अनुसार कमांड देना, पर्ल फीचर की तरह लगभग अच्छा है।

आपको मदद करने के लिए सबसे अच्छा उपकरण है: अनुभव । जैसे। इस साइट पर रेगेक्स प्रश्नों से निपटना उस अनुभव को प्राप्त करने का एक शानदार तरीका है ... मुझे लगता है कि GUI उपकरण वास्तव में बहुत मदद नहीं करते हैं, क्योंकि वे अनुभव को रोकते हैं ...

सारांश में, सबसे अच्छा सहायक उपकरण अनुभव और संरचित लेआउट हैं , और मैनुअल (विस्तार से) पढ़ें।

मैंने "expereince" शब्द का बहुत उपयोग किया है .. इसका मतलब है कि नियमित-अभिव्यक्ति (और sedकिसी भी लूपिंग तर्क आदि के मामले में ) को तैयार करने का कार्य मुख्य कारक है .. "रेगेक्स-बिल्डर" प्रकार उपकरण; आप के लिए रेगेक्स न लिखें; वे केवल इसका परीक्षण करते हैं, और वे निश्चित रूप से sed के प्रोग्राम लॉजिक को हैंडल नहीं करेंगे , क्योंकि यह कोई regex नहीं है .. (और आपने विशेष रूप से सिंगल आउट किया है sed) ... सिंटैक्स-हाइलाइटिंग जो वे पेश कर सकते हैं वह मेरे लिए बहुत कुछ नहीं करता है। । अच्छा ब्रैकेट मिलान वाला एक संपादक बहुत आसान है, हालांकि (मैं एमएसीएस का उपयोग करता हूं) ।।


मुझे लगता है कि यदि आपके पास आसान परीक्षण और प्रयोग के लिए एक उपकरण है तो यह चोट नहीं पहुंचाएगा। (emacs re-builder)
फेवाडी

1
मैंने उपयोग किया है emacs re-builderऔर इससे मुझे बिल्कुल भी मदद नहीं मिली ... पिछले दिन 1 नहीं ... सभी ने मुझे दिखाया कि emacsइसमें एक्स्ट्रा बैकस्लैश या दो की जरूरत है, क्योंकि एमएसीएस चीजों का मूल्यांकन कैसे करता है ... आप बना सकते हैं के माध्यम से अपने regex का मूल्यांकन करके एक ही परीक्षण C-x C-e.. यह आपके लिए अभिव्यक्ति नहीं लिखता है; आपको अभी भी इसे लिखने की आवश्यकता है ... और फिर emacsवर्णनात्मक शब्दों का उपयोग करके रीटैक्स की प्रणाली है .. (मुझे लगा कि क्रिया / अंग्रेजी जैसी प्रणाली COBOL के साथ मर गई .. लेकिन यहां तक ​​कि COBOL पूरी तरह से मृत नहीं है, अभी तक) .. और आदरणीय, आपको अभी भी इसे लिखने की आवश्यकता है।
पीटर।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.