Я новичок в функции регулярных выражений и хотел получить совет. У меня есть поле, которое содержит значения с разделителями трубы и ищет для извлечения значения на основе позиции другого значения. Причина этого заключается в том, что желаемое значение не всегда устанавливается, но всегда стремится занять 5-ю позицию другого значения. Надеюсь, что в этом есть смысл.
Вот пример строки:
| XYZ | CBA | 365 | 15841.25 | 43.40 | 20171202 | 20181201 | 365 | 17024,94 | 46,64 || 20171202 | 20181201 | 365 | 17024,94 | 46,64 || 0,00 | 546,18 | 0000 |
Я хочу извлечь цифру, выделенную жирным шрифтом и курсивом - 546,18, и она стремится занять 5-ю позицию после третьей «365» или первых 365 снизу вверх, и это то, что я бы предпочел.
Я попытался перевернуть строку и получить первый экземпляр 365
первый шаг - повернуть поле (контент) обратно (контент) как content_rev
второй шаг - вернуть первый55 символов из первого экземпляра 563 и обратная строка обратно в исходное
обратный (substr (content_rev, instr (content_rev, '\ | 563 \ |') - 50, 55)) как extract_content
Вывод выглядит следующим образом: | 365 | 17024,94 | 46,64 || 0,00 | 546,18 | 8528 | 02 | 0540023096 | 2 | 2
от thЯ не уверен, как получить выделенное значение
Я уверен, что этот способ не самый эффективный метод, поэтому, если у кого-то есть лучший способ получить результат, он будет очень признателен.