REGEX 在路径中查找字符串并排除部分字符串

REGEX 在路径中查找字符串并排除部分字符串

希望这是一件容易的事。我正在使用REG_EXTRACTInformatica 中的 从变量中提取文件名。它使用正则表达式来识别要提取的内容。这是我的例子。这是我进入 powercenter 时的文件名和文件路径。

FILENAME=/test_files/infa_test/nippy/SrcFiles/JUNK/JUNK_OPS_SPINK_PAE_01-01-01-01-01-99.csv
REG_EXTRACT($FILENAME,'^\/(.+\/)*(.+)$',2).  

所产生的JUNK_OPS_SPINK_PAE_01-01-01-01-01-99.csv.我很难编写正则表达式参数来仅提取 JUNK/ 之后但 _SPINK 之前的 file_name,如“JUNK_OPS”。下划线因文件而异,但“_SPINK”将始终出现在我需要提取的内容之后。任何帮助都会很棒。

答案1

也许是这样的:

^.*\/(.*)_SPINK.*$

不幸的是,我无法访问 Informatica 来测试它,但sed同意:

echo '/test_files/infa_test/nippy/SrcFiles/JUNK/JUNK_OPS_SPINK_PAE_01-01-01-01-01-99.csv' |
sed -E 's/^.*\/(.*)_SPINK.*$/\1/'

这会产生JUNK_OPS.

根据REG_EXTRACT工作原理,它可能会缩短为

\/([^/]*)_SPINK

相关内容