java - 使用正则表达式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);
}
}
解决方案
你"[,[\\[]]"
表示一个[,[\[]]
匹配单个字符的模式,要么是 a 要么是,
a [
([\[]
另一个字符类中的字符类形成了一个字符类 union)。
您可以使用
String data = "hello,[cicuyuv v,]imijmijm".replaceAll(",[\\[\\]]", ",");
System.out.println(data); // -> hello,cicuyuv v,imijmijm
查看Java 演示
在这里,,[\[\]]
是一个匹配的正则表达式模式,,
然后是一个[
or ]
。请非常小心Java 正则表达式中的字符类]
及其[
内部:它们都必须被转义(在其他风格中,当您在 regex101.com 或其他类似网站上测试时,[
内部[...]
不必被转义。建议使用 Java 正则表达式测试站点,例如RegexPlanet或Java 正则表达式测试器(无从属关系)。
推荐阅读
- android - 如何向 Android 应用程序添加更多页面?
- javascript - 查询 Mongodb 的 Openwhisk 操作
- wordpress - 在 Wordpress 中将 zip 文件上传到 Elementor
- docker - 无法在 Macos 上使用自定义 docker 映像开始
- angular - 将空白路由到具有 id 的子组件
- mongodb - 带有 Java 聚合驱动程序的 MongoDB 查询和 Java 代码
- angular - 如何禁用 Angular 服务工作者的预检缓存控制标头(调用事件流时)?
- python - O(1) 奇偶空间复杂度
- python - 为什么我不能重塑 numpy 字符串数组和 ctype 数组?
- python - 如何使用字典映射 tf.data.Dataset 中的值