用正则表达式替换两个引号应该是什么?

时间:2018-10-05 08:58:39

标签: java regex

<element>
  <Argument Name="AWSAccessKeyId" Value="APOEIUVWIE8E78E6"></Argument>
  <Argument Name="SearchIndex" Value="Apparel"></Argument>
  <LegalDisclaimer>Leriya Fashion products,on amazon.in."Leriya Fashion" in search.</LegalDisclaimer>
</element>

我只想替换该单词(“ Leriya Fashion”)中的引号。我尝试了许多正则表达式,但它们替换了所有引号。现在我们知道这个单词,但是如果我们不知道实际单词怎么办。

  1. "|[a-z]$$|"$
  2. "|"+\s

我想用空格或空格代替它。当我们将此xml转换为json时,就会发生主要问题。因为json将此双引号作为值,但实际上它不是一个值,它只是一个双引号的名称。所以对我来说,很难用json中的空白替换此引号,这就是为什么我要在xml文件中替换它

3 个答案:

答案 0 :(得分:3)

如果只有"Leriya Fashion",为什么不使用String::replace

str = str.replace("\"Leriya Fashion\"", "Leriya Fashion");

我假设您只是想删除引号。

答案 1 :(得分:1)

尝试一下

以正则表达式模式查找

[ ]+(")+[A-z ]+(")+[ ]

并在下面替换

[ ]+[A-z ]+[ ]

enter image description here

答案 2 :(得分:0)

Lambda replaceAll

str = Pattern.compile("(.)\"([^\"\r\n]*\"").matcher(str)
    .replaceAll(mr -> mr.group(1).equals("=") ? mr.group()
                      : mr.group(1) + mr.group(2));

这将替换任何文本 "..."中来自非HTML属性(="...")的所有引号。 危险的假设是引号只能成对出现。