正则表达式匹配双引号之外的所有单词

时间:2018-06-20 09:53:26

标签: java regex groovy

我只需要匹配双引号的单词,并用空格替换。 例如:

<data something="blabla" somethingelse="123.4">

仅匹配

<data something="" somethingelse="">

我将与replaceAll()一起使用,例如:

String afterRegex = item.replaceAll("regex"," ");

最后我需要这样的东西

blabla  123.4

THX。

3 个答案:

答案 0 :(得分:0)

您可以在下面的regrex中将双引号文本替换为“”。希望对您有所帮助

Regrex = day attribute 1 Monday fox=4,hare=20,wolf=2 2 Tuesday fox=4,hare=25,wolf=1 3 Wednesday fox=4,hare=30,wolf=3

答案 1 :(得分:0)

更改问题后更新。

目标:删除引号之外的所有内容。一种可能性匹配:

  • [^\"]*+包括但不包括双引号在内的所有内容
  • \"(开头)双引号本身
  • ([^\"]*+) 捕获所有内容,直到下一个两倍
  • \"(双引号)
  • [^\"]*+其余(包括但不包括下一个双引号)

并替换为:

  • $1先前捕获的
  • 个空格作为分隔

示例:

text.replaceAll("[^\"]*+\"([^\"]*+)\"[^\"]*+", "$1  ")

(使用所有格修饰符*+ 避免回溯-微观优化?)

答案 2 :(得分:0)

我会尝试str = str.replaceAll( \"(.*?)\", "\"\"" )