我正在尝试找到一个正则表达式,该正则表达式将匹配任何一对双引号,并且前面没有正好一个管道,而后面没有一个管道。

这是示例行:

1||1|0|0|1|0|""|0|0|||""|""Billy""|"Johnson"|


在这一行中,我想匹配单词Billy前后的双引号对。

我尝试过的正则表达式是:

[^|]""[^|]


这似乎很简单,但与我的想法不符。

是否有与之匹配的正则表达式?

(特别是,我将尝试使用String.replaceAll()替换Java中的那些引号,但是一般的regex解决方案可以使我朝正确的方向入门。)

最佳答案

您将需要转义|符号,因为它在RegEx中具有特殊含义。

请尝试使用[^\|]""[^\|]。您可以使用在线工具(例如http://www.roblocher.com/technotes/regexp.html上的工具)进行验证

但是,基于anubhava的建议,您只在引号中查找匹配项,而不是中间的文本。尝试以下方法:

(?<!\|)""|""(?!\|)

它将匹配没有|的字符串。在“”之前,或者没有|的地方之后 ””

关于java - 如何在管道分隔文件中找到不被管道包围的字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27025395/

10-12 12:23
查看更多