2012-05-24 11 views
6

मैं इस regex है: [\s\S-[<>]]*regex को समझना [ s एस - [<>]] *

आप कृपया मुझे समझ में इस अभिव्यक्ति के लिए क्या खड़े करता है मदद कर सकता है? जो मैं देखता हूं उससे इसका मतलब है कि रिक्त स्थान का एक वर्ण वर्ग और गैर-स्पेस वर्णों से < या> तक की श्रेणी है?

यह बहुत समझ में नहीं आता है ..

धन्यवाद!

+0

कौन सी भाषा के द्वारा प्राप्त किया जा सकता है? – Tim

+0

यह जावा के लिए है, यह एक एक्सएसडी सत्यापनकर्ता पैटर्न में लागू होता है:

उत्तर

8

यह एक संस्करण है जो केवल कुछ रेगेक्स इंजन (.NET, JGSoft, XML स्कीमा और XPath द्वारा समर्थित है लेकिन उदाहरण के लिए मूल जावा regex नहीं), और इसे character class substraction कहा जाता है।

उदाहरण के लिए,

[A-Z-[EFG]] 

छोड़कर E, F या GZ को A से किसी भी पत्र से मेल खाता है।

लेकिन आपके मामले में, यह वास्तव में क्योंकि [\s\S] किसी भी चरित्र से मेल खाता है ज्यादा मतलब नहीं है - ही परिणाम (किसी भी regex स्वाद में)

[^<>]* 
+0

धन्यवाद! लेकिन अगर मैं लिखूंगा [ए \ एस - [<>]] - क्या इसका मतलब होगा: "चरित्र ए या कोई गैर अंतरिक्ष चरित्र <>" के बिना? –

+0

या यहां तक ​​कि सरल, [\ S - [<>]] का अर्थ है बिना सभी स्पेस वर्ण <>? –

+0

@leadgy: हाँ, लेकिन आप इसे हमेशा अलग-अलग लिख सकते हैं, उदाहरण के लिए '[^ \ s <>] '। –

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