Я хочу, чтобы извлечь целый абзац из CLOB, который я преобразуется в String, проблема с регулярным выражением Я написалэкстракт абзац из текста сохраняется на CLOB
Абзац начать с ДОПОЛНИТЕЛЬНОЕ РАЗВЕЙТЕ ДЕТАЛЕЙ, но проблема это утверждение может содержать несколько пробелов, пустые строки или текст и может заканчиваться пробелами, пустыми строками, текстом, строкой ***** или строкой #####.
примеров: как ниже:
1. /********* НЕКОТОРОЙ BLANK ЛИНИЯ *****/
ДОПОЛНИТЕЛЬНЫЕ ПОСЛЕДУЮЩИЕ ПОДРОБНОСТИ: некоторый текст .... ..... какой-либо текст ...................... .......... какой-либо текст.
2. /********* НЕКОТОРЫЕ BLANK ЛИНИИ *****/
ДОПОЛНИТЕЛЬНЫЕ ПОСЛЕДУЮЩИЕ ДЕТАЛИ:
/********* НЕКОТОРЫХ BLANK LINES *****/
какой-либо текст ......... какой-либо текст ...................... .. ........ некоторые текстовые
3. /********* нЕКОТОРЫЕ BLANK ЛИНИИ *****/
ДОПОЛНИТЕЛЬНЫЕ ПОСЛЕДУЮЩИЕ ДЕТАЛИ:
/********* НЕКОТОРОГО BLANK ЛИНИЯ *****/
некоторый текст ......... некоторый текст ... ................... .......... какой-либо текст.
некоторый текст .......
4. /####### НЕКОТОРЫХ TEXT ###############/
ДОПОЛНИТЕЛЬНЫЕ ПОСЛЕДУЮЩИЕ ДЕТАЛИ:
/********* нЕКОТОРЫЕ BLANK ЛИНИИ *****/ некоторые текст ......... некоторый текст ..... ................. .......... какой-либо текст.
какой-либо текст .......
линия (*) **************** -
здесь то, что я пытался до сих пор: общественности статической строки getSentence (текстовая строка, строка слово) {
final String lcword = word.toLowerCase();
return END_OF_SENTENCE.splitAsStream(text)
.filter(s -> s.toLowerCase().contains(lcword))
.findAny()
.orElse(null);
}
private static String processUpdateCmpln(String text) throws IOException{
//String lines = we.getText();
String ResultString = null;
Pattern regex = Pattern.compile("\\.*ADDITIONAL FOLLOW UP DETAILS:\\s+(.*)[\\n*]$", Pattern.DOTALL);
Matcher regexMatcher = regex.matcher(text);
if (regexMatcher.find()) {
ResultString = regexMatcher.group(1);
}
return ResultString;
}
//3609601
private static String processUpdateCmplns(String text) throws IOException{
//^.*\b(ADDITIONAL FOLLOW UP DETAILS:)\b.*$
Pattern p = Pattern.compile("(?s)ADDITIONAL FOLLOW UP DETAILS:\\s*(.*?)((?:\r?\n+|\r){2,}|$)");
Matcher m = p.matcher(text);
String ResultString = null;
while (m.find()) {
ResultString=m.group(1);
}
EDIT:
реальный пример, как показано ниже:
Мне нужно извлечь текст из ДОПОЛНИТЕЛЬНЫХ РАЗВЕЙТЕ ПОДРОБНОСТИ: для ERP 18MAR2016, Обратите внимание ДОПОЛНИТЕЛЬНЫЕ РАЗВЕЙТЕ DET АИБС: может появляться более одного раза
18-Mar-2016 12:50 (GMT-4: 00) добавляют Лоло:
ЗАПРОС #: 98765432
СВЯЗАННЫЕ СЛУЧАЙ TR (S) ЕСЛИ ПРИМЕНИМО : нет
ПРИЧИНА ВЗАИМОДЕЙСТВИЯ: Некоторые текст ..
IF ПОТЕНЦИАЛ ПРИОРИТЕТ PC = дА (указать, почему): нет
нЕ ИМЕЕТ ПРОДУКТА С проблемой были использованы: да
ПРОДУКТ ЗАМЕНА ЗАПРОШЕННЫЙ (ДА/НЕТ, НЕКОТОРЫЙ ТЕКСТ НЕКОТОРОГО ТЕКСТА НЕКОТОРОГО ТЕКСТ): нет
ДОПОЛНИТЕЛЬНЫХ ПОСЛЕДУЮЩИХ ДЕТАЛЕЙ:
Некоторого text..Some text..Some text..Some текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... ..Кто-то текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... ..Some текст..Some текст..Some текст..Some текст..Some текст..Some текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... ..Кто-то текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... ..Кто-то текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... ..Кто-то текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... ..Каждый текст..Каждый текст ..
ERP 18MAR2016
17-Mar-2016 12:30 (GMT-4: 00) добавил Джон:
РАЗВЕЙТЕ ШАБЛОН
СПРОС #: 1234567
СЛУЧАЙНЫЙ СЛУЧАЯ TR (S) ЕСЛИ ПРИМЕНИМЫЕ: Не применимо
ПРИЧИНА ДЛЯ ВЗАИМОДЕЙСТВИЯ: НЕКОТОРЫЕ ТЕКСТЫ Т Some Text Some Text
ЕСЛИ ВОЗМОЖНОСТЬ ПРИОРИТЕТ ПК = ДА (указать, почему): См первоначальный запрос
ИМЕЕТ ПРОДУКТА с проблемой были использованы: См первоначальный запрос
ПРОДУКТ ЗАМЕНЫ ЗАПРОШЕННЫЙ (ДА/НЕТ часть текста Some Text Some Text): См первоначальный запрос
ДОПОЛНИТЕЛЬНЫЕ ПОСЛЕДУЮЩИЕ ДЕТАЛИ:
Некоторые text..Some text..Some text..Some text..Some text..Some text..Some текст..Каждый текст..Каждый текст..Каждый текст..Som e text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some text ..Кто-то текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты .. Некоторые тексты ..
..Кто-то текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... ..Кто-то текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст .. Некоторый текст. Какой-то текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... ..Кто-то текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст..Каждый текст .. Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... Некоторые тексты ... ..Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some текст ..
RLH 17MAR2016
Попробуйте 'String pat =" (? Sm)^ДОПОЛНИТЕЛЬНЫЕ ДЕТАЛИ ПОСЛЕДУЮЩИХ ДЕТАЛЕЙ: (?: (?!^ДОПОЛНИТЕЛЬНЫЕ ДЕТАЛИ ПОСЛЕДУЮЩИХ ДЕТАЛЕЙ:).) * ";', См. Https://regex101.com/r/pH8yK8/ 1 –
Или аналогичная развернутая ['String pat =" (? M)^ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: (. * (?: \ R? \ N (?! ДОПОЛНИТЕЛЬНЫЕ СЛЕДУЮЩИЕ ДЕТАЛИ:). *) *) "; '] (https://regex101.com/r/pH8yK8/3) –
Является ли' ДОПОЛНИТЕЛЬНЫЕ СЛЕДУЮЩИЕ ДЕТАЛИ' в начале строки? Если нет, вам нужно добавить '\ s *' к шаблонам выше после '^'. –