সাবএক্সপ্রেশন/মেটাক্যারেক্টার "\G" वहाँ ম্যাচ করে যেখানে গত ম্যাচ শেষ হয়েছিল। এটি সাধারণত Matcher.find() লুপে ব্যবহার করা হয় যাতে একোন্যটির সাথে যুক্ত ম্যাচ পাওয়া যায়।
উদাহরণ: স্ট্রিংয়ের শুরু থেকে ডিজিট সিকোয়েন্স এক্সট্র্যাক্ট
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String args[]) {
String regex = "\\G[0-9]";
Scanner sc = new Scanner(System.in);
System.out.println("একটি স্ট্রিং দিন: ");
String input = sc.nextLine();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
int count = 0;
String digits = "";
System.out.println("গত ম্যাচের ডিজিটগুলো:");
while (m.find()) {
System.out.print(m.group());
count++;
}
System.out.println();
System.out.println("ম্যাচের সংখ্যা: " + count);
}
}
আউটপুট
একটি স্ট্রিং দিন: 555 sample text গত ম্যাচের ডিজিটগুলো: 555 ম্যাচের সংখ্যা: 3
ব্যাখ্যা: \\G[0-9] মানে "গত ম্যাচ শেষ হয়েছে সেখান থেকে একটি ডিজিট"। ইনপুট "555 sample text"-এ শুরুতে ৩টি ডিজিট একসাথে আছে, তাই \\G প্রতিটি ডিজিটের পর পর আবার ম্যাচ করতে দেয়েছে। " sample text"-এ আসার পর ডিজিট নেই, তাই ম্যাচ বন্ধ হয়েছে।
ব্যবহার: টোকেনাইজিং, পার্সিং-এ খুব কার্যকর।