NiFi ReplaceText 正则表达式用 CRLF 替换换行符

NiFi ReplaceText Regex replace Newline with CRLF

我有一个带有 Unix 风格换行符 (\n) 的文本文件(GetFile 处理器),但需要一个 Windows 风格的 Carriage-Return+LineFeed CRLF (\r\n ) 在我的 FlowFile

我的 ReplaceText-Processor 正在运行

Search value: ((?<!\x0d)\x0a|\x0d(?!\x0a))
Replacement value: ${literal(''):replaceFirst('','\r')}${literal(''):replaceFirst('','\n')}

问题: 我的 RegEx 在我看来非常复杂 您知道在 FlowFile 中将 \n 转换为 \r\n 的更简单方法吗?

周末愉快

弗兰克

如果您的文件仅包含 \n,我认为没有理由将 \r 与模式匹配。

使用

(?<!\r)\n

替换为${literal('\r\n')}

解释

--------------------------------------------------------------------------------
  (?<!                     look behind to see if there is not:
--------------------------------------------------------------------------------
    \r                       '\r' (carriage return)
--------------------------------------------------------------------------------
  )                        end of look-behind
--------------------------------------------------------------------------------
  \n                       '\n' (newline)