2009-05-22 11 views
6

नियमित अभिव्यक्ति भाषाएं A..Z, a..z, 0..9, और _ को शामिल करने के लिए \ B का उपयोग करती हैं, और \ b को शब्द सीमा के रूप में परिभाषित किया जाता है।स्पेनिश शब्द के लिए नियमित अभिव्यक्ति क्या है?

मैं एक नियमित अभिव्यक्ति कैसे लिख सकता हूं जो सभी वैध स्पैनिश शब्दों से मेल खाती है, जैसे कि: á, í, ó, é, ñ, आदि?

मैं .NET का उपयोग कर रहा हूं।

उत्तर

6

स्पेनिश लोकेल का उपयोग करें और अपना रेगेक्स लोकेल-संवेदनशील बनाएं।

1

आपका regex प्रणाली के लिए कुछ बराबर होना चाहिए पायथन के re.L (उर्फ re.LOCALE) एक regex स्थान पर निर्भर बनाने के लिए है, इसलिए है कि क्या एक शब्द-चरित्र है और क्या, वातावरण के साथ परिवर्तन नहीं है के रूप में "शब्द सीमाओं" करना आदि क्या आप इसके बजाय कुछ दिए गए रेगेक्स सिस्टम समर्थन लोकेल की क्षतिपूर्ति करने का कोई तरीका मांग रहे हैं, फिर भी इस मुद्दे को मजबूर करने की कोशिश कर रहे हैं ...?

1

यह आपके द्वारा उपयोग की जा रही भाषा (और रेगेक्स इंजन) पर भारी निर्भर करता है।

पर्ल में, \w मैचों सभी शब्द वर्ण, भाषा या वर्णमाला, और /\b(\w+)\b/ की तरह कुछ की परवाह किए बिना (शायद) स्पेनिश शब्द के साथ-साथ अंग्रेजी शब्दों या रूसी शब्द से मेल खाएगा।

पीसीआरई, \w (और इसलिए शायद \b) का उपयोग करने वाली भाषाओं में यूनिकोड वर्णों से मेल न करें। आपको शायद अपना खुद का सेट बनाना होगा। मैं [\wáéíóúñ] जैसे कुछ सुझाव देता हूं (सभी शब्द पात्रों से मेल खाता है, साथ ही आपके द्वारा इच्छित उच्चारण वर्ण), और पीसीआर लाइब्रेरी को यूनिकोड समर्थन के साथ पहले से बनाया जाना चाहिए इससे पहले कि यह काम भी करेगा।

यदि आप कुछ और, शुभकामनाएं का उपयोग कर रहे हैं। कुछ रेगेक्स इंजन यूनिकोड का समर्थन भी नहीं करते हैं।

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