删除相同的特定字符

Remove the same occurrence of specific characters

我想从放在每个元音之前的字符串中删除 "OB"。 例如:"THIS IS SOME REALLY GREAT BOLD TEXT" & 添加 OB 后:"THOBISOBISSOBOMOBEROBEOBALLYGROBEOBATBOBOLDTOBEXT" 那是我写的方法。

public static String unObify(String param) {

    String deleteOB = param.replaceAll("[OB]", "");

    return deleteOB;

}

输出:THISISSMEREALLYGREATLDTEXT

但问题是此方法还会删除我的字符串中的 O 和 B。我只想删除一个接一个发生的OB。

删除 [] 并写入 .replaceAll("OB(?=[AaEeIiOoUu])", "");

[] 表示单独匹配 [] 中的任何内容

使用当前的正则表达式 [OB],您指定一个匹配 OB.

的字符 class

如果你想在每个元音之前替换 OB,你可以使用正向预测来断言后面是一个元音:

OB(?=[AEIOU])

或者正如@Tim Biegeleisen 指出的那样,使用使先行不区分大小写:

OB(?=(?i)[AEIOU](?-i)) 要么 OB(?=[aeiouAEIOU])

public static String unObify(String param) {

    String deleteOB = param.replaceAll("OB(?=[AEIOU])", "");

    return deleteOB;

}

那将取代

THOBISOBISSOBOMOBEROBEOBALLYGROBEOBATBOBOLDTOBEXTTHISISSOMEREALLYGREATBOLDTEXT

THOBSOBISSOBOMOBEROBEOBALLYGROBEOBATBOBOLDTOBEXTTHOBSISSOMEREALLYGREATBOLDTEXT