我在流集中的流选择器中使用正则表达式,但它没有按预期工作

I am using regex in stream selector in streamsets but it is not working as expected

我正在尝试根据是否匹配正则表达式对数据进行分区。 该列包含值 00000000081.48,表达式为

str:matches(record:value('/OUT_HD_CURR_BAL'), '[0-9]+\.[0-9]+')

但它的表现好像输出是错误的。正则表达式有什么问题吗?

我觉得应该是

str:regExCapture(record:value('/OUT_HD_CURR_BAL'), '([0-9]+\.[0-9]+)', 1)

如果您需要使用 str:matches 获取布尔值,请在您的表达式周围添加 .*

str:matches(record:value('/OUT_HD_CURR_BAL'), '.*[0-9]\.[0-9]+.*')

str:matches 需要从头到尾匹配字符串,.* 匹配任何文本。