को बाहर करने के लिए नियमित अभिव्यक्ति का उपयोग किसी स्ट्रिंग से मेल खाने के लिए किया जा सकता है, एक विशिष्ट स्ट्रिंग स्थिर को छोड़कर हम "एबीसी" कहें? क्या यह केवल एक विशिष्ट स्ट्रिंग निरंतर बाहर करना संभव है? अग्रिम में आपकी मदद धन्यवाद।RegEx एक विशिष्ट स्ट्रिंग स्थिर
उत्तर
यह आसान नहीं है, जब तक कि आपके regexp इंजन के लिए विशेष समर्थन न हो। एक मूल रूप से कहते हैं
$var =~ /^(($)|([^f].*)|(f[^o].*)|(fo[^o].*)|(foo.+))$/
or die "too much foo";
कि "अगर यह गैर के साथ शुरू होता: यदि नहीं, तो आप कुछ बुराई क्या करना है
$var !~ /^foo$/
or die "too much foo";
: सबसे आसान तरीका है एक नकारात्मक-मिलान विकल्प का उपयोग करने के लिए, उदाहरण के लिए होगा - f
, शेष कुछ भी हो सकता है; यदि यह f
, गैर-o
से शुरू होता है, तो बाकी कुछ भी हो सकता है, अन्यथा, यदि यह fo
शुरू होता है, तो अगला चरित्र बेहतर नहीं होगा o
"।
वह खाली स्ट्रिंग, 'f',' fo' और 'foo' की अनुमति नहीं देगा। – Gumbo
@ गम्बो: यह खाली स्ट्रिंग को ठीक ठीक करने देता है; ध्यान दें कि ($) पहला विकल्प है, इसलिए^$ (खाली स्ट्रिंग) स्वीकार किया जाता है। मैंने इसका परीक्षण किया, और कम से कम 5.0.10 में खाली स्ट्रिंग स्वीकार कर ली गई है। – derobert
... क्षमा करें, perl 5.10.0, ज़ाहिर है! – derobert
आपको ऋणात्मक लुकहेड दावे का उपयोग करना होगा।
(?!^ABC$)
उदाहरण के लिए आप निम्न का उपयोग कर सकते हैं।
(?!^ABC$)(^.*$)
यदि यह आपके संपादक में काम नहीं करता है, तो इसे आजमाएं।
^((?!ABC).)*$
यह काम करेगा यदि आप ऐसी स्ट्रिंग की तलाश में हैं जिसमें एबीसी शामिल नहीं है। लेकिन क्या वह लक्ष्य है? या एबीसी को छोड़कर हर चरित्र से मेल खाने का लक्ष्य है? –
यह इंगित करने के लिए धन्यवाद कि आप सही हैं - मेरा सुझाव केवल एबीसी से शुरू होने वाली तारों से बचाता है - मैं दावा को लंगर देना भूल गया था। इसे सही करने के लिए जा रहे हैं। –
यह अभी भी जो मैं सोच रहा था उससे अलग है। शायद प्रश्नकर्ता स्पष्ट करेगा कि वे क्या खोज रहे हैं। –
आप इस तरह नकारात्मक अग्रदर्शी, या कुछ और इस्तेमाल कर सकते हैं:: यह गहरे लाल रंग का और जावास्क्रिप्ट में काम करने के लिए परीक्षण किया जाता है
^([^A]|A([^B]|B([^C]|$)|$)|$).*$
हो सकता है कि यह थोड़ा सरल किया जा सकता है।
नेट में आप इस तरह अपने लाभ के लिए उपयोग कर सकते हैं समूहीकरण:
http://regexhero.net/tester/?id=65b32601-2326-4ece-912b-6dcefd883f31
आपको पता चलेगा कि:
(ABC)|(.)
2 समूह में एबीसी के अलावा सब कुछ हड़पने जाएगा। प्रत्येक समूह के चारों ओर पैरेन्थेसिस। तो (एबीसी) समूह 1 और है समूह 2.
तो आप बस में इस तरह 2 समूह हड़पने है एक की जगह (।):
$2
या अंदर समूह संग्रह में नेट नज़र में थोड़ा और नियंत्रण के लिए Regex वर्ग।
आपको अन्य रेगेक्स कार्यान्वयन में कुछ भी करने में सक्षम होना चाहिए।
अद्यतन: http://regexhero.net/tester/?id=997ce4a2-878c-41f2-9d28-34e0c5080e03
यह अभी भी (मैं एक तरीका है कि समूह का उपयोग नहीं करता नहीं मिल सकता है) समूहीकरण का उपयोग करता है: मैं एक बहुत तेजी से जिस तरह से इस यहाँ करने के लिए मिल गया। लेकिन यह विधि पहले की तुलना में 10X से अधिक तेज है।
इस नियमित अभिव्यक्ति का प्रयास करें:
^(.{0,2}|([^A]..|A[^B].|AB[^C])|.{4,})$
यह तीन मामलों में बताता है:
- कम से कम तीन मनमाना चरित्र
- ठीक तीन वर्ण, जबकि या तो
- पहली नहीं है
A
, या - पहले
A
है लेकिन दूसरेB
, या - पहले
A
है, दूसराB
नहीं है, लेकिन तीसरेC
- पहली नहीं है
- तीन से ज्यादा स्वैच्छिक वर्णों
- 1. Regex एक स्ट्रिंग
- 2. sed/regex: एक स्ट्रिंग
- 3. Regex: एक स्ट्रिंग
- 4. माणिक regex - कैसे एक स्ट्रिंग
- 5. एक विशिष्ट स्ट्रिंग
- 6. एक स्ट्रिंग के साथ regex करने के लिए या एक स्ट्रिंग के साथ regex नहीं है?
- 7. एक विशिष्ट दोहराए गए चरित्र को हटाने के लिए Regex
- 8. Regex: कैसे अतिव्यापी पैटर्न (शायद अजगर विशिष्ट)
- 9. regex स्ट्रिंग की जगह
- 10. regex स्ट्रिंग सबस्ट्रिंग
- 11. जावास्क्रिप्ट - स्ट्रिंग regex backreferences
- 12. Regex पहले वैकल्पिक स्ट्रिंग
- 13. पीएचपी: स्ट्रिंग regex को
- 14. रूबी स्ट्रिंग regex
- 15. एक स्ट्रिंग से पहला शब्द निकालने - regex
- 16. regex
- 17. विशिष्ट स्ट्रिंग
- 18. Grep regex स्ट्रिंग नहीं है
- 19. जावा में Regex $ {...} जैसे स्ट्रिंग
- 20. स्प्लिट स्ट्रिंग। संभावित Regex समाधान?
- 21. string.match (regex) बनाम regex.match (स्ट्रिंग)
- 22. क्या एक खाली स्ट्रिंग स्थिर है?
- 23. स्थिर सार स्ट्रिंग संपत्ति
- 24. Regex: एक चार
- 25. असंतुलित स्ट्रिंग स्थिर
- 26. एक विशिष्ट शब्द से पहले और उसके बाद एक शब्द खोजने के लिए regex
- 27. अजगर regex: एक चरित्र
- 28. XPath स्ट्रिंग जो एक विशिष्ट आईडी मान
- 29. सरल regex - एक अंतरिक्ष
- 30. विशिष्ट लंबाई के अंकों से मेल खाने के लिए Regex
कौन-सा टूल आप कर रहे हैं नहीं है का उपयोग करते हुए? टूल के आधार पर, यह बाहरी आपके रेगेक्स को निर्दिष्ट करने का एक तरीका हो सकता है। grep उदाहरण के लिए, मैच की भावना को उलटने के लिए एक -v विकल्प का समर्थन करता है। –
क्या आप सिर्फ 'अगर (/^एबीसी $ /) अन्य {...} नहीं कर सकते हैं, जहां अन्य एबीसी – Xetius
से मेल नहीं खा रहे हैं तो क्या आप एबीसी भाग को छोड़कर किसी दिए गए स्ट्रिंग के प्रत्येक चरित्र से मेल खाते हैं ? दूसरे शब्दों में, "एबीसी के साथ एक स्ट्रिंग" "स्ट्रिंग के साथ" मेल खाएगी। –