2012-05-22 18 views
7

को छोड़कर स्ट्रिंग से गैर संख्यात्मक वर्ण हटाएं I x के अलावा स्ट्रिंग से सभी गैर संख्यात्मक वर्णों को निकालने का प्रयास कर रहा हूं। मैं थोड़ा उलझन में हूँ।जावा x

मेरे वर्तमान कोड

number.replaceAll("[^\\d\\x]", "") 

अग्रिम धन्यवाद।

+1

सभी कि आपके regex साथ कुछ गड़बड़ है कि आप अनावश्यक रूप से एक्स से बचने कर रहे हैं। –

उत्तर

20

उपयोग करें: [^x0-9]

आप इसे http://gskinner.com/RegExr/

+0

मैं पूंजी एक्स को भी निर्दिष्ट करना भूल गया, तो क्या यह ठीक होगा [^ xX0-9]? धन्यवाद नूरलन। –

0

पर जाँच कर सकते हैं मैं यह पता लगा, शायद वहाँ हालांकि यह करने के लिए एक बेहतर तरीका है।

number.replaceAll("[^\\d+xX]", ""); 
+0

इसे डबल स्लैश के साथ "[^ \\ d + xX]" पढ़ना चाहिए। –

+1

@ जॉर्ज - प्लस साइन का उपयोग क्यों करें? क्या इससे जुड़ी चीजें निकल जाएंगी? – jahroy

0

आप इस का उपयोग करना चाहिए:

number.replaceAll("[\\D&&[^x]]", "") 
7

आपका regex

number.replaceAll("[^\\dxX]+", ""); 

एक चरित्र वर्ग के भीतर सामान्य वर्णों से बचने के लिए कोई ज़रूरत नहीं है। चरित्र वर्ग के बाद क्वांटिफायर + में सुधार भी है, इस तरह उन पात्रों के अनुक्रम एक बार में बदल दिए जाते हैं और प्रत्येक char को स्वयं ही नहीं बदला जाता है।

Xisb पर कुछ regex मूल बातें पढ़ें: What absolutely every Programmer should know about regular expressions

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