Я пытаюсь использовать регулярные выражения Java для соответствия шаблону, который охватывает несколько строк. Шаблон имеет одну строку, которая начинается с «A», а затем ровно 50 символов, а затем одну или несколько строк, которые начинаются с «B», а затем ровно 50 символов:Java Regular Expression для поиска нескольких строк определенной длины
A... // exactly 50 chars after the A
B...
B...
Java регулярные выражения, кажется, не поддерживают это однако.
Вот регулярное выражение, которое работает для одного А и один В строке:
A.{50}[\\n[\\n\\r]]B.{50}[\\n[\\n\\r]]
Здесь же регулярное выражение модифицирован, чтобы найти один или несколько B линии:
A.{50}[\\n[\\n\\r]][B.{50}[\\n[\\n\\r]]]+
Это регулярное выражение находит только однако главный символ B на первой линии B.
Я использую [\\n[\\r\\n]]
для обработки как строк DOS, так и UNIX. Включение режима MULTILINE не влияет на результаты.
Проблема заключается в том, что я использую скобки с символом «+», чтобы превратить регулярное выражение для строки В в класс символов, который может захватывать несколько строк.
Есть ли что-то о регулярных выражениях Java, которые не допускают '.' символ или фигурные скобки, чтобы указать точную длину строки?
Существует одна линия A с 50 символами, следующими за «A», а затем с несколькими строками B с 50 символами после «B». stackoverflow не сохранял новые строки между линиями A и B, которые я показал выше. – 2010-11-22 17:57:30