java - 使用正则表达式替换字符的选定实例

标签 java regex

首先,这不是一个家庭作业/学校问题。这是我个人项目所需的东西,并且能够使用简单的字符概括问题,如下所示:

创建一个正则表达式,可在输入字符串 aaabaabaa(或类似字符串)的 java 字符串 ReplaceAll 函数中使用,并将每个 a 转换为 A,除非它前面有 b。所以预期输出是 AAAbaAbaA。我已经尝试了至少 2 个小时了...我能想到的最好的办法是:

replaceAll("^a|([^b])a", "$1A");

这在 aaa 上失败,返回值为 AaA

我想说“任何前面没有“b”的“a”都应该是 A。对于 RegEx 新手有什么想法吗?非常感谢!

最佳答案

尝试使用负向回顾:

str.replaceAll("(?<!b)a", "A");

这将匹配任何a紧接其后的b

关于java - 使用正则表达式替换字符的选定实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21491770/

相关文章:

java - 从文本文件中读取 json

java - Do While 循环,跟踪用户输入 Java

删除连续字符运行中的重复项

javascript - 解析文本并使用正则表达式获取两个值

java - 二维 int 数组不接受我提供的维度

java - 方法调用后将任务计时器重置为 0

java - 无法从 excel 单元格中获取数值

java - split ("[^0-9a-zA-Z]+")在结果中显示空字符串

c++ - 如何为至少包含一个数字且不包含任何字母的字符串编写正则表达式?

php - JavaScript 中的正则表达式修饰符/u?