我有一个由管道分隔的txt文件中的数据。不幸的是,两个字段可以有多个值。为了分隔这些倍数,发送者再次使用管道,但在其周围加上引号。我的正则表达式工作了几个月,直到某种罕见的情况。。。
正则表达式当前:
([^\|]*)\|"?([^"]*)"?\|([^\|]*)\|"?([^"]*)"?
它适用于以下大多数情况: |“part1 | part2”| |“tool1 | tool2”
但这个案子 ([^"]*)
跳到前面,把所有从空白到引号的结尾:(ABC)ABC“Toe1工具2”
所以我意识到我必须考虑下什么时候有管道而不是报价。只是不知道如何。。。。。。。。。。。。。p、 对于那些可能正在看这个的Pig人,我从每个转义中删除了一个反斜杠,使它看起来更像java,但是在pig中你需要2个,仅供参考。
1条答案
按热度按时间mzillmmw1#
在表达式中,需要指定
|
s可以被引用,也可以不被引用。您可以按以下步骤进行:现在你可以重复这个部分几次
|
在两者之间,你需要的话。