Я использую java Pattern.matches для сопоставления блока данных с регулярным выражением. Блок данных может быть одной строкой или несколькими строками. Проблема в том, что, как только мои данные станут более 15 строк (обычно более 17-18 строк), я начинаю получать stackoverflowerror. Для данных менее 15 строк регулярное выражение отлично работает.
Regex имеет такой формат:
domainname → space → , → space → number → space → , → space → number → newline
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