आप नियमित अभिव्यक्ति में अभिव्यक्तियों को कोष्ठक से अलग करके मिलान समूह बना सकते हैं। निम्नलिखित नियमित अभिव्यक्ति में पहला समूह अंकों से मेल खाता है और दूसरा समूह अंग्रेजी वर्णमाला से मेल खाता है:
(\\d)([A-Za-z])
संक्षेप में, यह इनपुट स्ट्रिंग के उस भाग से मेल खाता है जहां एक अंक के बाद एक वर्णमाला आती है।
चूंकि अभिव्यक्ति $1 समूह 1 को इंगित करती है और $2 समूह 2 को इंगित करती है, यदि आप String क्लास की replace() विधि का उपयोग करके उपरोक्त Java नियमित अभिव्यक्ति को $1 $2 से प्रतिस्थापित करते हैं, तो जब कोई संख्या किसी शब्द के बाद आती है तो दी गई इनपुट स्ट्रिंग में संख्या और शब्द के बीच एक स्पेस जोड़ दिया जाएगा।
उदाहरण
import java.util.Scanner;
public class SampleTest {
public static void main(String args[]) {
String regex = "(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])";
// उपयोगकर्ता से इनपुट पढ़ना
Scanner sc = new Scanner(System.in);
System.out.println("Enter input text: ");
String input = sc.nextLine();
// String result = input.replaceAll(regex, " ");
String result = input.replaceAll("(\\d)([A-Za-z])", "$1 $2");
System.out.println(result);
}
}
आउटपुट
Enter input text: 21This 23is 56sample 99text 21 This 23 is 56 sample 99 text
इसी तरह, आप क्रम की परवाह किए बिना दिए गए टेक्स्ट में संख्याओं और वर्णमाला के बीच स्पेस जोड़ सकते हैं, आपको निम्नलिखित अभिव्यक्ति को स्पेस से प्रतिस्थापित करने की आवश्यकता है:
(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])
उदाहरण
import java.util.Scanner;
public class SampleTest {
public static void main(String args[]) {
String regex = "(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])";
// उपयोगकर्ता से इनपुट पढ़ना
Scanner sc = new Scanner(System.in);
System.out.println("Enter input text: ");
String input = sc.nextLine();
// String result = input.replaceAll(regex, " ");
String result = input.replaceAll(regex, " ");
System.out.println(result);
}
}
आउटपुट
Enter input text: 21This23is56sample99text 21 This 23 is 56 sample 99 text