Java 理解“中的regexp”;,(?=([^\";]*\";[^\";]*\";)*[^\";]*$)";用于拆分
在学习Java课程时,我遇到了以下代码:Java 理解“中的regexp”;,(?=([^\";]*\";[^\";]*\";)*[^\";]*$)";用于拆分,java,regex,split,Java,Regex,Split,在学习Java课程时,我遇到了以下代码: String[]columns=row.split(“,(?=([^\“]*\”[^\“]*\”[^\“]*$”)*”); 通过检查,我们可以理解括号之间有一个regexp字符串 检查后,事情变得更加棘手: 将表达式拆分为以下几部分: ,-我们希望字符串被分割的字符 (-在第16点关闭 ?=-(?=X)X,通过零宽度正向前瞻 (-在第11点关闭 [^\”]-除«“»以外的任何字符 *-我不明白 \“-字符«”» [^\”]-同样,与第5点一样,除了«“»
String[]columns=row.split(“,(?=([^\“]*\”[^\“]*\”[^\“]*$”)*”);
通过检查,我们可以理解括号之间有一个regexp字符串
检查后,事情变得更加棘手:
将表达式拆分为以下几部分:
,
-我们希望字符串被分割的字符(
-在第16点关闭?=
-(?=X)X,通过零宽度正向前瞻(
-在第11点关闭[^\”]
-除«“»以外的任何字符*
-我不明白\“
-字符«”»[^\”]
-同样,与第5点一样,除了«“»以外的任何字符*
-同样,就像第6点一样,我不确定我是否明白了这一点\”
-同样,如第7点所示,字符«“»)
-关闭从第4点开始的表达式*
-这是某种逻辑AND吗[^\”]
-与第5点和第8点类似,除了«“»以外的任何字符*
-与第6、9和12点相同$
-边界匹配器,指示行的结尾)
-关闭从点2开始的表达式([^\“]*\”[^\“]*\”*[^\“]*$
在这一点上,我相信问题已经变成:在Java中,*如何粘合regexp中的表达式?
通过调查,我发现了三个例子,但我仍然不明白:
- 在贪婪量词中,X*X,零次或多次李>
- 在不情愿的量词中,X*?十、 零次或多次
- 在所有格量词中,X*+X,零次或多次
如果我发现任何扣款有误,请纠正我,并感谢您抽出时间。阅读此文章?尝试粘贴正则表达式并阅读解释正则表达式中
*
的含义非常基本,应该在最基本的介绍中介绍。它允许将前面的表达式重复零次或多次。所有内容都在和处得到了很好的解释。链接线程中可用的链接。在很多情况下,要求分隔符后面有偶数个“
。换句话说,不要在两个”
:s之间拆分。(如果您正试图拆分CSV,那么CSV的某些方言可能仍不适用。)阅读此文?尝试粘贴正则表达式并阅读解释正则表达式中*
的含义非常基本,应该在最基本的介绍中介绍。它允许将前面的表达式重复零次或多次。所有内容都在和处得到了很好的解释。链接线程中可用的链接。在很多情况下,要求分隔符后面有偶数个“
。换句话说,不要在两个”
:s之间拆分。(如果您正试图拆分CSV,那么CSV的某些方言可能仍然不适用。)