首页 > 解决方案 > 使用正则表达式java替换字符组合

问题描述

我有几个字符串数据集,我想在其中使用 java 中的 regex replace 替换某些字符组合。我尝试了多种模式,但没有一个有帮助。有人可以指出我正确的模式吗?

例如:

你好,[cicuyuv v,]imijmijm

在这个字符串中,我想在发生",["的任何地方替换",]"一个","

public class MainApp {

    public static void main(String[] args) {
        String data = "hello,[cicuyuv v,]imijmijm"
            .replaceAll("[,[\\[]]", ",");

        System.out.println(data);

    }

}

标签: javaregex

解决方案


"[,[\\[]]"表示一个[,[\[]]匹配单个字符的模式,要么是 a 要么是,a [[\[]另一个字符类中的字符类形成了一个字符类 union)。

您可以使用

String data = "hello,[cicuyuv v,]imijmijm".replaceAll(",[\\[\\]]", ",");
System.out.println(data); // -> hello,cicuyuv v,imijmijm

查看Java 演示

在这里,,[\[\]]是一个匹配的正则表达式模式,,然后是一个[or ]。请非常小心Java 正则表达式中的字符类]及其[内部:它们都必须被转义(在其他风格中,当您在 regex101.com 或其他类似网站上测试时,[内部[...]不必被转义。建议使用 Java 正则表达式测试站点,例如RegexPlanetJava 正则表达式测试器(无从属关系)。


推荐阅读