我有一个CSV文件,其中某些列名称中带有空格,而某些列名称中的字符之间没有空格。我想从所有具有空白的标题名称中删除空白。请帮忙。谢谢!
附加屏幕截图以供参考。示例:“名字” 我要“名字”
我正在使用 ReplaceText 处理器,在该处理器中,我在“搜索值”下传递了“ \ s ”以仅搜索标题行空白和替换值为空字符串。我的评估模式也是“逐行”。因此现在输出文件显示为 FirstName,LastNameshraddha,srivastavsanstuti,srivastav ,因此它以一行显示所有内容。我只希望将空白从标题行中删除,并且根本不要触摸/合并数据值。谢谢
请告诉我如何删除它们。谢谢!
答案 0 :(得分:2)
尝试以下 ReplaceText 配置:
搜索值
(.*)
替换价值
${'$1':replace(" ","")} //we are applying NiFi expression language replace function on the captured group.
字符集
UTF-8
最大缓冲区大小
1 MB
替换策略
Regex Replace
评估模式
Entire text //works with Line-By-Line mode also
有关NiFi表达式语言的更多详细信息,请参见this链接。
输入流文件:
First Name,Last Name
shraddha,srivastav
sanstuti,srivastav
输出流文件:
FirstName,LastName
shraddha,srivastav
sanstuti,srivastav
答案 1 :(得分:1)
您应该能够进行以下匹配:
/[\s]/g
它匹配所有空白。 然后只需替换为空字符串即可。 编辑:
尝试以下方法:
/(?<!\n.+)[ ]/g
只有在没有换行符的情况下,它才会与空格匹配。换句话说,只有第一行会匹配。 再次,用空字符串替换。
答案 2 :(得分:1)
@Shu方向正确,但是问题在于文本中的所有空格都将被替换。为了只替换标题行中的空格,请在Shu的解决方案中进行更改:
(?s)(^ [^ \ n] *)(。* $)
$ {'$ 1':replace(“”,“”)} $ 2