我试图找到一个匹配任何一对双引号的正则表达式,它前面没有一个管道,后面有一个管道。
以下是示例行:
1||1|0|0|1|0|""|0|0|||""|""Billy""|"Johnson"|
在这一行中,我希望匹配单词Billy
前后的双引号对。
我试过的正则表达式是:
[^|]""[^|]
这似乎很简单,但不符合我的想法。
是否有匹配那些的正则表达式?
(具体来说,我将尝试使用String.replaceAll()
替换Java中的引号,但是一般的正则表达式解决方案可以让我开始朝着正确的方向前进。)
答案 0 :(得分:2)
你需要逃避|符号,因为它在RegEx中具有特殊含义。
请尝试使用[^\|]""[^\|]
。您可以使用在线工具验证这一点,例如http://www.roblocher.com/technotes/regexp.html
然而,根据anubhava的建议,你只在报价上寻找匹配,而不是中间的文本。试试这个:
(?<!\|)""|""(?!\|)
它将匹配没有|的字符串在&#34;&#34;之前,或者没有|的地方在&#34;&#34;
之后答案 1 :(得分:2)