java - 删除相同出现的特定字符

标签 java regex string replaceall

我想从我放在每个元音之前的字符串中删除“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],指定与OB匹配的字符类。

如果您想在每个元音之前替换 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;

}

这将取代

THOBISOBISSOBOMOBEROBBEOBALLYGROBEOBATBOBOLDTOBEXT这个非常伟大的文本

THOBSOBISSOBOMOBEROBBEOBALLYGROBEOBATBOBOLDTOBEXTTHOBSISSOMEREALLYGREATBOLDTEXT

关于java - 删除相同出现的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48032314/

相关文章:

java - 使用正则表达式来匹配每个单词中第一次出现的字母

java - 我在哪里可以找到网络应用程序中保存的文件

JavaScript:正则表达式将 foo( 替换为 foo (

regex - 如何在 Perl 中找到正则表达式匹配的 _all_ 位置?

javascript - 根据先前的值设置正则表达式数字范围

string - Swift 格式化本地化字符串

Java:使用 RxTx 库

java - 无法在 JPanel 上绘图

php - PHP的str_replace()中,双反斜杠是什么意思?

python - 如何在不在 Python 中创建中间列表的情况下拆分字符串并重新加入它?