Замените первое вхождение {и что-либо перед {одним {в Informatica, используя REG_REPLACE

У меня есть требование, где у меня есть входящая строка с фигурными скобками в нем. Я должен заменить первое вхождение фигурной скобки и всего, что было раньше, только одной фигурной скобкой. Короче говоря, я должен что-то устранить до первого появления фигурной скобки, используя REG_REPLACE в Informatica. Я пытался использовать s/^[^{]*// как в sed в UNIX, но это не сработало вообще. Любая помощь будет оценена.

Спасибо

2 ответа

Hmmm Sed не имеет понятия жадной или ленивой замены, лучше использовать очень похожую, но более надежную команду perl replace. Также ваша команда sed пытается заменить начало строки, затем первый символ, если это не фигурная скобка, а затем все остальное пустым.

Пытаться

perl - pi -e 's/^*?{//g' addyourfilenamehere.

Использование informatica также возможно, используя instr, чтобы найти позицию первого символа {, а затем substr, чтобы извлечь все символы после этого символа в другой порт, аналогично тому, что nico предлагает здесь https://network.informatica.com/thread/16336

У вас будет переменная целочисленного порта, позволяющая вызывать FIRSTBREAK со значением

INSTR(FIELDIN,'{') + 1

и ваш выходной порт установлен в

SUBSTR(FIELDIN, FIRSTBREAK)

Лично я избегаю регулярных выражений в коде, они очень полезны, но я нашел много путаницы из-за неожиданного поведения регулярных выражений

Большое спасибо! Да, я использовал подобное выражение для этого. Выходной порт = SUBSTR(INPUT_STRING, INSTR(INPUT_STRING,'{'), LENGTH(INPUT_STRING))

Другие вопросы по тегам