2015-12-19 2 views
7

मैं यह सुनिश्चित करना चाहता हूं कि स्ट्रिंग में केवल अल्फा वर्ण हों (विशेष वर्ण जैसे "é", "è", "ç", "Ç", "ï" इत्यादि)।जावा: स्ट्रिंग पैटर्न: विशेष वर्णों के साथ सभी अल्फा वर्णों के लिए रेगेक्स निर्दिष्ट करने के लिए

मैंने किया है, लेकिन विशेष वर्ण के साथ झूठे रिटर्न ...

if (myString.matches("^[a-zA-Z]+$")) { 
    return true; 
} 

धन्यवाद लोग!

+0

क्या आप [केवल लैटिन अक्षरों] से मेल खाना चाहते हैं (https://stackoverflow.com/questions/27707836/latin-letter-regular-expression-in-java) या सभी वर्णमाला से अक्षर? '\ P {एल}' अभिव्यक्ति कई अक्षरों से हजारों वर्णों से मेल खाती है। अंतरिक्ष चरित्र के साथ – Boann

उत्तर

7

आप किसी भी भाषा से किसी भी प्रकार के पत्र से मेल खाने के लिए Unicode Category: \\p{L} या \\P{Letter} का उपयोग कर सकते हैं।

if (myString.matches("\\p{L}+")) { 
    return true; 
} 

Btw, String.matches पूरी स्ट्रिंग, इसलिए ^ मिलान करने के लिए प्रयास करते हैं, $ एंकर आवश्यक नहीं हैं।

+0

falsetru? – anthony

+0

@anthony, आप दोनों के मिलान के लिए चरित्र वर्ग का एक साथ उपयोग कर सकते हैं: '[\\ s \\ p {L}] + ' – falsetru

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