分割线的正则表达式

Regular expresission to split line

我需要正则表达式来拆分后面的文本

es7600: indv_nr, ksl_dato, se_nr, cvr_nr, annul_kod, projekt_kod, virk_start_dto, virk_oph_dto, abon_status_kod, virk_kod, virk_type_txt

我需要捕获冒号之前和冒号之后的文本

var = regex # result es7600
var1 = indv_nr, ksl_dato, se_nr, cvr_nr, annul_kod, projekt_kod......

我想问题是,如何抓取 : 之前的所有内容以及冒号之后的所有内容

在这种情况下,我需要干净的正则表达式,因为 NIFI extractText 不支持表达式语言

这就是你想要的吗?

([^:]+): *([^$]+)

demo

Group1 捕获冒号前的所有内容
Group2 捕获冒号后的所有内容(以及零个或多个 space 个字符)

我假设您有 es7600: indv_nr, ksl_dato, ..... 作为流文件内容

然后您可以使用 ExtractText 处理器并添加新的动态参数:

MyKey 值为 ([^:]+):(.*)

您也可以设置为 true Enable DOTALL ModeEnable Multiline Mode

执行后,如果内容与上面的正则表达式匹配,您的流文件中应该有新属性:

MyKey.1 将包含 :

之前的值

MyKey.2 将包含 :

之后的值