2013-07-05 5 views
5

कम से कम मैं इन पात्रों में से किसी एक मैच के लिए चाहते हैं अभिव्यक्ति: < या > या <= या >= या =नियमित से अधिक और

यह एक काम करने के लिए प्रतीत नहीं होता: [/</=/>]

उत्तर

3

आप चरित्र वर्ग के लोगों वर्णों के किसी भी भागने की जरूरत नहीं है। इसके अलावा, आपको उन पात्रों के 1 से अधिक पुनरावृत्ति से मेल खाने के लिए क्वांटिफायर का उपयोग करने की आवश्यकता है।

आप इस की जरूरत है:

[<>=]{1,2} 

नोट परिमाणक, 2 repetitions मिलान करने के लिए, के रूप में <= और >= के लिए आवश्यक।


इसके अलावा, ध्यान दें कि यह से मेल खाएगी - ==, <<? का उपयोग करने के बाद = यह वैकल्पिक बनाता

[<>]=?|= 

: आप सख्ती से सिर्फ उन 4 तार से मिलान करना चाहते, तो आप इस regex का उपयोग कर सकते हैं। तो, पहला भाग मिलान करेगा - <, >, <=, और >=। और फिर हम पाइप का उपयोग कर = जोड़ते हैं।

+1

यह '==', '<<', '= <', आदि – Barmar

+0

@ बामार से भी मेल खाता है। हाँ बिलकुल।लेकिन मैंने इतना सख्ती से नहीं लिया है। हो सकता है कि मैं जवाब अपडेट करूं। –

+0

धन्यवाद लेकिन यह एक अच्छा काम करता है सिवाय इसके कि यह केवल < or > के लिए काम नहीं करता है लेकिन यह <= or > = या = – saroll

2

मुझे यकीन नहीं है कि आप स्लेश का उपयोग क्यों कर रहे हैं (इसमें ठंडेपन के साथ कुछ हो सकता है जिसे मुझे पता नहीं है, अगर आवश्यकता हो तो उन्हें वापस जोड़ें) ... आपका रेगेक्स वर्तमान में केवल एक वर्ण से मेल खाता है। प्रयास करें:

[<=>]{1,2} 

आप एक regex केवल >, <, >=, <= और = मैच के लिए चाहते हैं, तो यह है कि करने के लिए थोड़ा और हो जाएगा। कोल्डफ्यूज़न में REMatch() फ़ंक्शन सभी मिलान किए गए परिणामों को एक सरणी में वापस कर देगा, इसलिए एक तरफ या किसी अन्य तरीके से डिलीमीटर या सीमाएं निर्दिष्ट करना महत्वपूर्ण है, क्योंकि यह PHP में findall या PHP में preg_match_all (या वैश्विक मिलान को फ़्लैग करना) जैसा है। ।

\b(?:[<>]=?|=)\b 

Here's a demo with g activated:

सीमा मुझे लगता है कि सबसे सरल है \b है।

और इन सीमाओं के बिना, here's what happens

संपादित करें: रिक्त स्थान के बारे में कुछ नहीं पता था। शायद इसके साथ तय किया जा सकता है?

\b\s*(?:[<>]=?|=)\s*\b 
+0

धन्यवाद यह केवल एक के लिए काम करता है = या <= or > = लेकिन यह केवल के लिए काम नहीं करता है> या <संकेत – saroll

+0

@ सरोल क्या आप इसके बारे में निश्चित हैं? यदि यह '{1,2}' के कारण सफलतापूर्वक '> =' या '<=' या '=' से मेल खाता है तो यह मेल खाना चाहिए। – Jerry

+0

धन्यवाद @ रोहितजैन यह एक अच्छा काम करता है [\ <=>] {1,2} एस्केप चार्टर्स – saroll

10

इस प्रयास करें:

[<>]=?|= 

यह < या > वैकल्पिक रूप से सिर्फ = अपने आप में = द्वारा पीछा किया, या मेल खाता है।

+0

+1। :) – zx81

संबंधित मुद्दे