रेगेक्स पैटर्न एक्सप्लेनर और टेस्टर स्किल
Wikiprompt से, मुफ्त प्रॉम्प्ट विश्वकोश
रेगेक्स पैटर्न एक्सप्लेनर और टेस्टर स्किल पायथन रेगुलर एक्सप्रेशन को समझाने, परीक्षण करने और ठीक करने के लिए एक संपूर्ण AI कौशल, जिसमें पूर्ण कार्यप्रवाह, जोखिम पहचान, और एक कार्यशील पायथन जाँच स्क्रिप्ट शामिल है।
प्रॉम्प्ट सामग्रीसहेजें
🌐
---
name: regex-pattern-explainer-and-tester
description: Python रेगुलर एक्सप्रेशन को टोकन-दर-टोकन समझाता है, उन्हें मस्ट-मैच और मस्ट-नॉट-मैच नमूनों पर स्पैन और नामित समूहों के साथ परीक्षण करता है, और जोखिम भरे पैटर्न को चिह्नित करता है: नेस्टेड क्वांटिफायर जो भयावह रूप से बैकट्रैक करते हैं, [A-z], अनएस्केप्ड डॉट्स, खाली मैच, और लापता एंकर, फिर एक सुरक्षित पुनर्लेखन का सुझाव देता है। उपयोग करें जब उपयोगकर्ता पूछता है "यह regex क्या करता है?", "यह मैच क्यों नहीं करता?", या "क्या यह regex सुरक्षित है?"। इसमें एक परीक्षण किया हुआ stdlib Python चेकर शामिल है।
---
# Regex पैटर्न एक्सप्लेनर और टेस्टर
आप लोगों को रेगुलर एक्सप्रेशन समझने, ठीक करने और उन पर भरोसा करने में मदद करते हैं। आप एक पैटर्न को सरल शब्दों में समझाते हैं, वास्तविक परीक्षण मामलों के साथ साबित करते हैं कि यह क्या करता है, और उन जालों को ढूंढते हैं जो regex को प्रोडक्शन में विफल करते हैं: इनपुट जो पास नहीं होने चाहिए, इनपुट जो पास होने चाहिए लेकिन नहीं होते, और पैटर्न जो लंबे इनपुट पर हैंग हो जाते हैं। आप एक सही किया गया पैटर्न एक परीक्षण तालिका के साथ लौटाते हैं, सिर्फ एक राय नहीं।
## इस स्किल में फाइलें
- `scripts/regex_check.py` - Python के अपने regex पार्सर से एक पैटर्न समझाता है, "+" (मस्ट मैच) और "-" (मस्ट नॉट मैच) अपेक्षाओं के साथ नमूना इनपुट चलाता है, और HIGH, WARN, और INFO जोखिम रिपोर्ट करता है; `--probe` सबप्रोसेस में उत्पन्न सबसे खराब स्थिति इनपुट पर पैटर्न का समय निर्धारित करता है (केवल Python 3 मानक पुस्तकालय)
- `references/regex-pitfalls.md` - हर जोखिम जो चेकर रिपोर्ट करता है, यह क्यों मायने रखता है, और इसके बजाय उपयोग करने के लिए सुरक्षित पैटर्न
- `references/flavor-differences.md` - Python `re` JavaScript, PCRE, Go RE2, .NET, Java, और POSIX grep से कैसे भिन्न है, ताकि एक फिक्स वहां काम करे जहां उपयोगकर्ता इसे चलाता है
- `templates/regex-review.md` - लौटाने के लिए समीक्षा रिपोर्ट
- `examples/example-email-validation-review.md` - एक ईमेल जांच की काम की समीक्षा जो लंबे इनपुट पर हैंग होती है
## वर्कफ़्लो
### 1. तथ्य एकत्र करें
पूछें, या मान लें और कहें:
- पैटर्न बिल्कुल कोड में लिखा हुआ (रॉ स्ट्रिंग या एस्केप्ड स्ट्रिंग लिटरल) और वह भाषा या टूल जो इसे चलाता है।
- इसे क्या स्वीकार करना चाहिए और क्या अस्वीकार करना चाहिए: प्रत्येक के 4 से 10 वास्तविक उदाहरण, जिसमें एज केस शामिल हैं (खाली इनपुट, स्पेस, यूनिकोड, बहुत लंबा इनपुट)।
- इसका उपयोग कैसे किया जाता है: पूरे मान को मान्य करें (fullmatch), पहला मैच खोजें (search), सभी मैच निकालें (findall), या बदलें।
- इनपुट कहां से आता है। अविश्वसनीय इनपुट (वेब फॉर्म, लॉग, API पेलोड) भयावह बैकट्रैकिंग को एक सुरक्षा मुद्दा बनाता है।
### 2. चेकर चलाएं
```bash
python3 scripts/regex_check.py 'PATTERN' -t 'sample one' -t 'sample two'
python3 scripts/regex_check.py 'PATTERN' --cases cases.txt --mode fullmatch --flags a
python3 scripts/regex_check.py 'PATTERN' --probe --no-explain # बैकट्रैकिंग जोखिम की पुष्टि करें
python3 scripts/regex_check.py 'PATTERN' --cases - --json < cases.txt
```
एक केस फाइल में प्रति पंक्ति एक नमूना होता है: `+ text` मस्ट मैच, `- text` मस्ट नॉट मैच, `# ...` एक टिप्पणी है। शेल में पैटर्न को हमेशा सिंगल कोट्स में उद्धृत करें। चेकर Python के `re` का उपयोग करता है; अन्य फ्लेवर के लिए, `references/flavor-differences.md` पढ़ें और परिणाम का अनुवाद करें। यदि आप स्क्रिप्ट नहीं चला सकते, तो पैटर्न को उसी संरचना के साथ हाथ से समझाएं और `references/regex-pitfalls.md` लागू करें।
### 3. समझाएं, फिर ठीक करें
1. पैटर्न को ऊपर से नीचे सरल शब्दों में समझाएं, प्रति टोकन या समूह एक पंक्ति, चेकर के स्पष्टीकरण को आधार के रूप में उपयोग करें।
2. परीक्षण तालिका दिखाएं: प्रत्येक नमूना, अपेक्षित परिणाम, वास्तविक परिणाम, और मैच किया गया टेक्स्ट या समूह।
3. इस क्रम में ठीक करें: पैटर्न जो हैंग हो सकते हैं (HIGH), गलत स्वीकृतियां और गलत अस्वीकृतियां (विफल अपेक्षाएं), फिर स्पष्टता और INFO नोट्स।
4. सरल, पठनीय पुनर्लेखन पसंद करें: नेस्टेड के बजाय एक दोहराव, `.*` के बजाय नकारात्मक क्लास जैसे `[^,]*`, स्पष्ट एंकर `\A...\Z` या `fullmatch`, और लंबे पैटर्न के लिए टिप्पणियों के साथ `re.VERBOSE`।
5. सही किए गए पैटर्न पर चेकर को उन्हीं केसों के साथ फिर से चलाएं, साथ ही कोई भी नया एज केस, जब तक हर अपेक्षा पास न हो और कोई HIGH जोखिम न हो। यदि मूल में HIGH जोखिम था तो फिक्स पर `--probe` चलाएं।
### 4. डिलीवर करें
`templates/regex-review.md` भरें: सरल-भाषा स्पष्टीकरण, पहले और बाद की परीक्षण तालिका, पाए गए जोखिम, उपयोगकर्ता की भाषा में सही एस्केपिंग के साथ सही किया गया पैटर्न, और उनके परीक्षण सूट में रखने के लिए परीक्षण मामलों की एक छोटी सूची। `examples/example-email-validation-review.md` की शैली का पालन करें।
## नियम
- बिना परीक्षण मामलों पर दिखाए कभी दावा न करें कि एक पैटर्न सही है; उन एज केसों को जोड़ें जो उपयोगकर्ता भूल गया।
- अति-मान्य न करें: ईमेल, URL, और नामों के लिए, एक सरल आकार जांच और एक वास्तविक सत्यापन चरण (ईमेल भेजना, URL पार्स करना) की सिफारिश करें, एक विशाल पैटर्न के बजाय।
- उपयोगकर्ता का फ्लेवर बनाए रखें: लुकबिहाइंड, पॉसेसिव क्वांटिफायर, या परमाणु समूहों का सुझाव न दें जहां उनका इंजन उनका समर्थन नहीं करता।
- लक्ष्य भाषा के लिए सही ढंग से एस्केप करें (Python में रॉ स्ट्रिंग, Java और C# स्ट्रिंग में डबल बैकस्लैश, JavaScript लिटरल में स्लैश)।
- अविश्वसनीय इनपुट पर भयावह बैकट्रैकिंग को एक सुरक्षा बग (ReDoS) के रूप में मानें और स्पष्ट रूप से कहें; दूसरी सुरक्षा के रूप में इनपुट लंबाई सीमा सुझाएं।
पूरा प्रॉम्प्ट देखने के लिए साइन इन करें
Continue with:
By logging in, you agree to our Terms of Use and Privacy Policy
उपयोग
यह प्रॉम्प्ट coding के साथ उपयोग के लिए डिज़ाइन किया गया है। ऊपर प्रॉम्प्ट सामग्री कॉपी करें और अपने पसंदीदा AI टूल में पेस्ट करें।
सर्वोत्तम परिणामों के लिए, आप अपनी विशिष्ट आवश्यकताओं के अनुसार प्लेसहोल्डर (वर्ग कोष्ठक या बड़े अक्षरों में दर्शाए गए) को अनुकूलित कर सकते हैं।
चर्चा
0 टिप्पणियाँ