Regex 用于从绝对路径提取文件夹名称的正则表达式(Linux)
我在ApacheNIFI中使用regex函数在文件路径中查找文件夹名,但它似乎没有给出正确的结果 我想从这个文件路径用两个不同的正则表达式解析出“state”和“date”Regex 用于从绝对路径提取文件夹名称的正则表达式(Linux),regex,apache-nifi,regexp-replace,Regex,Apache Nifi,Regexp Replace,我在ApacheNIFI中使用regex函数在文件路径中查找文件夹名,但它似乎没有给出正确的结果 我想从这个文件路径用两个不同的正则表达式解析出“state”和“date” /upload/main/state/0202021/ 这是我用的正则表达式 ${“absolute.path”:replaceFirst(.[/\\\\]{1}([a-zA-Z]+)[/\\\\]{1}(\d{8})。?$”,“$1”)} ${“absolute.path”:replaceFirst(.*(\d{8})。+
/upload/main/state/0202021/
这是我用的正则表达式
${“absolute.path”:replaceFirst(.[/\\\\]{1}([a-zA-Z]+)[/\\\\]{1}(\d{8})。?$”,“$1”)}
${“absolute.path”:replaceFirst(.*(\d{8})。+$,“$1”)}
如果出现的内容总是在同一个位置,我会使用这两个表达式:
-
对于最后位置的日期<代码>(?< P>)可以考虑使用< /P>
state=${“absolute.path”:replaceFirst(.[/\\\]+)[/\\\\]\\d{8}[/\\\]?$,“$1”)}
日期=${“absolute.path”:replaceFirst(.[/\\\\](\\d{8})[\\\/]?$,“$1”)}
见和
重点是
\d
,\\
)也被转义$1
提取该零件
-除换行符以外的任何零个或多个字符,尽可能多*
-a[/\\]
或/
字符\
-捕获组(在替换模式中的(\d{8})
的帮助下参考):八位数字$1
-可选的[\\\/]?
或/
字符\
-字符串结束$
state = ${absolute.path:getDelimitedField(4, '/')}
date = ${absolute.path:getDelimitedField(5, '/')}
提及-