首先,这不是一个家庭作业/学校问题。这是我个人项目所需的东西,并且能够使用简单的字符概括问题,如下所示:
创建一个正则表达式,可在输入字符串 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/