java - 如何使用java正则表达式正确替换字符串中的字符?

标签 java regex

在我的 java 应用程序中,我有以下字符序列:b"2(任何单个字符,后跟双引号,后跟一位数字)

我需要用单引号字符替换双引号。 我正在尝试这个:

Pattern p = Pattern.compile(".\"d");
Matcher m = p.matcher(initialOutput);
String replacement = m.replaceAll(".'d");

这似乎没有做任何事情。

这样做的正确方法是什么?

最佳答案

首先,d 代表一个文字字符。您正在寻找 \d,它代表一个数字。

另一个问题是您用字符串文字 ".'d" 替换变量字符。一种解决方案是 capture可变部分并在替换中引用它们:

String replacement = initialOutput.replaceAll("(.)\"(\\d)", "$1'$2");

另一种方法是使用 lookarounds检查周围的字符而不实际匹配它们进行替换:

String replacement = initialOutput.replaceAll("(?<=.)\"(?=\\d)", "'");

关于java - 如何使用java正则表达式正确替换字符串中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48218609/

相关文章:

java - Android N 以编程方式更改语言

Java ModelMapper 将日期映射到字符串格式字段

java - 是否有另一种方法可以在不使用字符串转义所有字符的情况下执行正则表达式?

python - re.findall 表现得很奇怪

javascript - 通过javascript查找字符串的一部分

java - 如何从链接到字符串读取/解析文章内容

java - 从文件中获取信息并解析以获取方程

java - AbstractTableModel 教程

regex - Dreamweaver 正则表达式数字查找器

regex - 使用htaccess删除单个查询参数