我正在尝试找到一个正则表达式,该正则表达式将匹配任何一对双引号,并且前面没有正好一个管道,而后面没有一个管道。
这是示例行:
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/