आप कोष्ठक के साथ व्यंजकों को अलग करके रेगुलर एक्सप्रेशन में मेल खाने वाले समूह बना सकते हैं। निम्नलिखित रेगुलर एक्सप्रेशन में पहला समूह अंकों से मेल खाता है और दूसरा समूह अंग्रेजी वर्णमाला से मेल खाता है -
(\\d)([A-Za-z])
संक्षेप में, यह इनपुट स्ट्रिंग के उस भाग से मेल खाता है जहाँ एक अंक के बाद एक अक्षर आता है।
चूंकि व्यंजक $1 समूह1 को इंगित करता है और $2 समूह2 को इंगित करता है, यदि आप उपरोक्त जावा रेगुलर एक्सप्रेशन को $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])"; //Reading input from user 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])"; //Reading input from user 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