यह एक गूंगा प्रश्न हो सकता है, लेकिन मुझे यह कहीं भी नहीं मिला:
मैं बिना कोष्ठक के जावा या नियमित अभिव्यक्ति ऑपरेटर (!) का उपयोग कैसे कर सकता हूं?
जैसे: दूरभाष | फोन | फैक्स |
यह एक गूंगा प्रश्न हो सकता है, लेकिन मुझे यह कहीं भी नहीं मिला:
मैं बिना कोष्ठक के जावा या नियमित अभिव्यक्ति ऑपरेटर (!) का उपयोग कैसे कर सकता हूं?
जैसे: दूरभाष | फोन | फैक्स |
जवाबों:
आप बस अपने दम पर पाइप का उपयोग कर सकते हैं:
"string1|string2"
उदाहरण के लिए:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
आउटपुट:
blah, blah, string3
कोष्ठक का उपयोग करने का मुख्य कारण विकल्पों के दायरे को सीमित करना है:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
एक ही आउटपुट है। लेकिन अगर आप ऐसा करते हैं:
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
आपको मिला:
blah, stringblah, string3
क्योंकि आपने "string1" या "2" कहा है।
यदि आप अभिव्यक्ति के उपयोग के उस हिस्से पर कब्जा नहीं करना चाहते हैं ?::
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));