/ / जावा केवल regex ए-z0-9 को प्रतिस्थापित करें - जावा, regex

जावा केवल regex a-z0-9 को प्रतिस्थापित करें - जावा, रेगेक्स

मैं केवल दिखाना चाहता हूं a-z0-9 एक स्ट्रिंग में, और अन्य वर्णों को शून्य स्ट्रिंग द्वारा प्रतिस्थापित किया जाना चाहिए

String s=this.saveFileName.replaceAll("/[a-z0-9. ]/", "");

यह काम नहीं करते, कोई विचार क्यों?

उत्तर:

उत्तर № 1 के लिए 13

इसे इस्तेमाल करे:

String s = "abc123ABC!@#$%^;"xyz";
String newString = s.replaceAll("[^a-z0-9]", "");
//newString is now "abc123xyz"

यह चरित्र वर्गों में अस्वीकरण (^) ऑपरेटर का लाभ उठाता है जो मूल रूप से कहता है, "निम्नलिखित वर्णों को छोड़कर सबकुछ मेल करें।"

इसके अलावा, जावा रेगेक्स को परिभाषित करते समय आपको स्लेश की आवश्यकता नहीं है।


जवाब के लिए 2 № 2

आपको इनकी ज़रूरत नहीं है / /.

PHP जैसी कुछ भाषाएं आपको उम्मीदवारों की एक जोड़ी के बीच रेगेक्स रखने की उम्मीद करती हैं, जावा नहीं करता है।

चूंकि आप अन्य सभी को प्रतिस्थापित करना चाहते हैं a-z0-9 आपको रेगेक्स चाहिए [^a-z0-9] या वैकल्पिक रूप से [^a-z\d]

[..] इसमें सूचीबद्ध चार से मेल खाने के लिए एक चार वर्ग है। चार वर्ग में श्रेणियां भी हो सकती हैं [a-z] जो एक लोअरकेस अक्षर से मेल खाता है। अब एक ^ चार वर्ग की शुरुआत में इसे अस्वीकार करता है, इसलिए [^a-z] किसी भी एक मैच से मेल खाता है के अलावा अन्य एक निचला मामला पत्र।


उत्तर № 3 के लिए 1

क्या आपने इसके बिना कोशिश की है // निशान?

String s=this.saveFileName.replaceAll("[^a-z0-9]", "");

जवाब के लिए 0 № 4

यह रेगेक्स चाल चल रहा है:

String s="Testing-1.2.3_$".replaceAll("[^a-z0-9. ]", "");

आउटपुट:

esting1.2.3

^ प्रतीक सेट को अस्वीकार करता है और स्लेश की आवश्यकता नहीं होती है।