इस प्रयास करें:
(?:[\w\-](?<!_))+
यह है कुछ भी पर एक साधारण मैच है कि एक \ w (या एक पानी का छींटा) के रूप में एन्कोड है और फिर एक शून्य चौड़ाई lookbehind सुनिश्चित करता है कि चरित्र है कि बस मिलान किया गया है अंडरस्कोर नहीं है।
नहीं तो आप ले सकता है इस एक:
(?:[^_\W]|-)+
जो है एक और अधिक सेट-आधारित दृष्टिकोण (अपरकेस डब्ल्यू ध्यान दें)
ठीक है, मैं के php के स्वाद में यूनिकोड के साथ बहुत मज़ा किया था PCREs: डी लुका छिपी का कहना है वहाँ एक सरल उपाय उपलब्ध है:
[\p{L}\p{N}\-]+
\ p {एल} कुछ भी यूनिकोड कि (ध्यान दें एक पत्र के रूप में उत्तीर्ण मेल खाता है: नहीं एक शब्द चरित्र, इस प्रकार कोई अंडरस्कोर नहीं), जबकि \ p {N} किसी भी संख्या से मेल खाता है (रोमन अंकों और अधिक विदेशी चीजों सहित)।
\ - बस एक बच निकला डैश है। अत्यंत आवश्यक होता हालांकि नहीं है, मैं यह चरित्र वर्गों में डैश से बचने के लिए एक बिंदु बनाने के लिए ... नोट करते हैं, वहाँ यूनिकोड में विभिन्न डैश के दर्जनों है, इस प्रकार निम्न संस्करण को जन्म दे रही हैं कि:
[\p{L}\p{N}\p{Pd}]+
कहाँ " पीडी "विराम चिह्न डैश है, जिसमें हमारे minus-dash-thingy सहित, लेकिन इतनी ही सीमित नहीं है। (नोट, फिर कोई अंडरस्कोर नहीं)।
स्रोत
2010-01-14 04:50:14
कृपया "यूटीएफ -8 अक्षरों" के बारे में विशिष्ट रहें - क्या आप पुष्टि कर सकते हैं कि आप केवल अंग्रेजी वर्ण नहीं चाहते हैं? –
@meder: मुझे अंग्रेजी ** और ** उच्चारण/विदेशी पात्र चाहिए। –