import java.util.regex.*;
import java.util.*;
public class RegexUtils {
// Check if pattern matches
public static boolean matches(String pattern, String input) {
return Pattern.matches(pattern, input);
}
// Find all matches
public static List<String> findAllMatches(String pattern, String input) {
List<String> matches = new ArrayList<>();
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
while (m.find()) {
matches.add(m.group());
}
return matches;
}
// Replace all matches
public static String replaceAll(String pattern, String input, String replacement) {
return input.replaceAll(pattern, replacement);
}
// Replace first match
public static String replaceFirst(String pattern, String input, String replacement) {
return input.replaceFirst(pattern, replacement);
}
// Split by pattern
public static String[] split(String pattern, String input) {
return input.split(pattern);
}
// Validate email
public static boolean isValidEmail(String email) {
String pattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
return Pattern.matches(pattern, email);
}
// Extract groups
public static List<String> extractGroups(String pattern, String input) {
List<String> groups = new ArrayList<>();
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
if (m.find()) {
for (int i = 0; i <= m.groupCount(); i++) {
groups.add(m.group(i));
}
}
return groups;
}
// Validate phone number
public static boolean isValidPhone(String phone) {
String pattern = "^\\+?[1-9]\\d{1,14}$";
return Pattern.matches(pattern, phone);
}
}