रेगेक्स - जिसमें कुछ वर्ण नहीं होते हैं


274

अगर मैच में कहीं भी </> नहीं है तो मुझे मैच के लिए एक regex की आवश्यकता है।

यदि या तो <या> स्ट्रिंग में हैं तो इसे गलत लौटना चाहिए।

मुझे इसके साथ आंशिक सफलता मिली थी, लेकिन केवल तभी यदि मेरा <> शुरुआत या अंत में हो:

(?!<|>).*$

मैं .Net का उपयोग कर रहा हूँ अगर इससे फर्क पड़ता है।

सहायता के लिए धन्यवाद।

जवाबों:


436
^[^<>]+$

चरित्र वर्ग ( [^) में कैरेट का अर्थ कुछ भी मेल खाता है, लेकिन इसका अर्थ है, स्ट्रिंग की शुरुआत, फिर एक या एक से अधिक <और >फिर कुछ भी , स्ट्रिंग का अंत।


3
पहले कैरेट का क्या अर्थ है? क्या इसका मतलब कुछ भी नहीं होगा जिसमें उन वर्ण शामिल नहीं हैं ... इस प्रकार केवल उन तारों का अर्थ है जो उन वर्णों को समाहित करते हैं?
रोबोकोह

11
पहले कैरट का मतलब है, स्ट्रिंग की शुरुआत। डॉलर का मतलब है, स्ट्रिंग का अंत।
नेड बाचेल्डर

2
@PhilipRego विशेष पात्रों के साथ सावधान रहें: शेल उनमें से कुछ की व्याख्या करता है। यह देखने के लिए कि क्या आपके पास अब आपकी निर्देशिका में '] + $' नामक फ़ाइल है। इसे काम करने के लिए पूरे रेगेक्स को सिंगल कोट्स के अंदर रखें।
नेड बाचेल्डर

बहुत बढ़िया जवाब! क्या आप इस बात का स्पष्टीकरण जोड़ सकते हैं कि ए +और फर्स्ट कैरेट क्यों है?
Dr_Zaszuś

1
@ Dr_Zaszuś "+" का अर्थ है "एक या अधिक", और "^" का अर्थ है "स्ट्रिंग की शुरुआत"।
नेड बाचेल्डर

59

हेयर यू गो:

^[^<>]*$

यह स्ट्रिंग के लिए परीक्षण करेगा जिसमें कोई <और नहीं है>

यदि आप एक स्ट्रिंग के लिए परीक्षण करना चाहते हैं जो हो सकता है <और >, लेकिन आपके पास कुछ और भी होना चाहिए जिसका आपको उपयोग करना चाहिए

[^<>] (or ^.*[^<>].*$)

कहाँ [<>]साधन के किसी भी <या> और [^<>]साधन किसी भी बात का नहीं है <या>

और निश्चित रूप से अनिवार्य लिंक

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.