使用正则表达式替换字符的选择实例



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

创建一个正则表达式,可用于输入字符串Aaabaabaa(或类似)的Java字符串替换函数,并将每个a转换为A,除非它先于b。因此,预期的输出是Aaabaabaa。我已经尝试了至少两个小时...我能想到的最好的是:

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

这在AAA上失败,其中返回值为AAA

我试图说"没有a'b'之前的任何'a'应该是A。

尝试使用负面的lookbehind:

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

这将与任何a 不匹配b之前。

最新更新