我想从我放在每个元音之前的字符串中删除“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。
最佳答案
使用当前的正则表达式[OB]
,指定与O
或B
匹配的字符类。
如果您想在每个元音之前替换 OB
,您可以使用正向先行来断言后面的内容是元音:
或者正如 @Tim Biegeleisen 指出的那样,使用使前瞻不区分大小写:
OB(?=(?i)[AEIOU](?-i))
或者
OB(?=[aeiouAEIOU])
public static String unObify(String param) {
String deleteOB = param.replaceAll("OB(?=[AEIOU])", "");
return deleteOB;
}
这将取代
THOBISOBISSOBOMOBEROBBEOBALLYGROBEOBATBOBOLDTOBEXT
到
这个非常伟大的文本
和
THOBSOBISSOBOMOBEROBBEOBALLYGROBEOBATBOBOLDTOBEXT
到
THOBSISSOMEREALLYGREATBOLDTEXT
关于java - 删除相同出现的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48032314/