Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java(Pig)Regex中,如何执行以下操作?_Java_Regex_Apache Pig - Fatal编程技术网

在Java(Pig)Regex中,如何执行以下操作?

在Java(Pig)Regex中,如何执行以下操作?,java,regex,apache-pig,Java,Regex,Apache Pig,我有一个由管道分隔的txt文件中的数据。不幸的是,两个字段可以有多个值。为了分隔这些倍数,发送方再次使用管道,但在其周围加上引号。我的正则表达式工作了几个月,直到出现某种罕见的情况 Regex目前: ([^\|]*)\|"?([^"]*)"?\|([^\|]*)\|"?([^"]*)"? 它适用于以下大多数情况: abc |“第1部分|第2部分”| abc |“工具1 |工具2” 但是这种情况是([^)] /跳转并将所有从空白到引号的结尾: abc | | abc |“工具1 |工具2” 因此

我有一个由管道分隔的txt文件中的数据。不幸的是,两个字段可以有多个值。为了分隔这些倍数,发送方再次使用管道,但在其周围加上引号。我的正则表达式工作了几个月,直到出现某种罕见的情况

Regex目前:

([^\|]*)\|"?([^"]*)"?\|([^\|]*)\|"?([^"]*)"?
它适用于以下大多数情况: abc |“第1部分|第2部分”| abc |“工具1 |工具2”

但是这种情况是<代码>([^)] /<代码>跳转并将所有从空白到引号的结尾: abc | | abc |“工具1 |工具2”

因此,我意识到我必须考虑下一步是否有管道而不是报价。 只是不知道如何。。。。。。。。。。。。。
另外,对于那些可能正在看这个的猪人们,我从每个转义中删除了一个反斜杠,使它看起来更像Java,但在PIG中,您需要2,仅供参考。

在表达式中,您需要指定

|
S之间的部分可以被引用,也可以不被引用。您可以按如下方式执行:

(("[^"]*")|((?!")[^|]*))

现在你可以根据需要在中间重复几次这个部分。

谢谢你的贴子,你非常接近。只需要去掉一些paren。我的朋友帮我做到了:
code
([^\\\]*)\\\\\(“[^”]*”[^\\\\[^\]*)\\\\([^\\\\\]*)\\\\([^\\\\\\\\\]*)\\\\\(“^\[\\\\\\\\\\\\]*”