Я использую java Pattern.matches, чтобы сопоставить блок данных с регулярным выражением. Блок данных может быть одной строкой или несколькими строками. Проблема в том, что как только мои данные становятся больше 15 строк (обычно больше 17-18 строк), я начинаю получать stackoverflowerror. Для данных менее 15 строк регулярное выражение работает отлично.
Regex имеет следующий формат:
имя домена -> пробел ->, -> пробел -> число -> пробел ->, -> пробел -> число -> новая строка
String regex = "^(([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+([a-zA-Z]{2,})\\s*,\\s*\\d+\\s*,\\s*\\d+(\\r?\\n)?)+$";
Блок данных, который я использую для проверки этого регулярного выражения, это
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
abc.com, 123, 456
Это код:
String regex = "^(([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+([a-zA-Z]{2,})\\s*,\\s*\\d+\\s*,\\s*\\d+(\\r?\\n)?)+$";
boolean valid = Pattern.matches(regex, data); //fails here