Java正则表达式替换所有

时间:2014-12-20 22:37:36

标签: java regex

我需要删除\s*,\s*,但仅限于"之间。 例如,此字符串a, b , c, "a, b , , c," a ,,应该看起来像abc"a, b , , c," a

我发现[^abc]表示不接触abc\.*表示一切,所以我尝试了这个:

str = str.replaceAll("[^\"\\.*,\\.*\"]\\s*,\\s*", "");

重要提示:"的数量是偶数。

1 个答案:

答案 0 :(得分:5)

使用此模式

\s*,\s*(?=(?:(?:[^"]*"){2})*[^"]*$)  

Demo
我想在您的情况下,将\s替换为\\s

\s*,\s*                 # your pattern
(?=                     # look-ahead
    (?:(?:[^"]*"){2})*  # optional pairs of double quotes
    [^"]*$              # followed by optional anything but double quotes to the end
)