У меня есть текст, хранящийся в строке из файла pdf. И есть около 30 строк, разделенных "\n"
. И я использую регулярное выражение в java, чтобы найти подстроку за другой строкой. Но эти две строки не находятся в одной строке.
Например, текст выглядит следующим образом:
Title
content1
the percentage is 23%
This is a test. Test A
the percentage is 80%
content2
Мне нужно получить все проценты, которые после "This is a test"
, в этом случае 80%
.
Я использовал regex: (?<=This is a test.)\\d*\\d\\%
Но похоже, что он только смотрит в строку "This is a test. Test A"
, ничто после этого.
Я знаю, что могу использовать раскол, но в реальном случае мне может понадобиться расколоть несколько раз, и это будет компрометировать существующую технологию, которую я имею прямо сейчас. Попытка выполнить его с использованием чистого регулярного выражения. Пожалуйста, дайте мне совет.
This is a test[\s\S]*?(\d+%)
Попробуйте this.Grab захвата или group.See демо.
https://regex101.com/r/pM9yO9/11
Для использования java
This is a test[\\s\\S]*?(\\d+%)
(This is a test).*\\n*.*\\d{1,2}\%