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

Java 正则表达式匹配双引号外的所有单词,java,regex,groovy,Java,Regex,Groovy,我只需要在双引号的之外匹配单词,并用空格替换它们。 例如: <data something="blabla" somethingelse="123.4"> 最后我需要有这样的东西 blabla 123.4 THX.您可以使用以下regrex将双引号文本替换为“”。希望它能对您有所帮助 Regrex=((?在问题更改后更新 目标:删除引号之外的所有内容。一种可能匹配: [^\“]*+所有内容,包括但不包括双引号 \”开头的双引号本身 ([^\“]*+)捕获到下一个双uotes之

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

<data something="blabla" somethingelse="123.4">
最后我需要有这样的东西

blabla  123.4

THX.

您可以使用以下regrex将双引号文本替换为“”。希望它能对您有所帮助


Regrex=
((?在问题更改后更新

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

  • [^\“]*+
    所有内容,包括但不包括双引号
  • \”
    开头的双引号本身
  • ([^\“]*+)
    捕获到下一个双uotes之前的所有内容
  • \”
    双引号(结束)
  • [^\“]*+
    剩余部分包括但不包括下一个双引号
并替换为:

  • $1
    先前捕获的
  • 空格作为分隔符
例如:

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

(使用所有格量词
*+
以避免回溯-微优化?

我会尝试
str=str.replaceAll(\“(.*?”,“\”)
不是有效的字符串或字符(在Java中),可能
“\”“
@CarlosHeuberger对,我需要的正是你建议的相反。如果你知道怎么做,因为我什么都试过了。
blabla  123.4
text.replaceAll("[^\"]*+\"([^\"]*+)\"[^\"]*+", "$1  ")