删除相同的特定字符

时间:2017-12-30 08:42:39

标签: java regex string replaceall

我想删除" OB"从我在每个元音之前放的字符串。 例如:"这是一些非常棒的文字" &安培;在向它添加OB之后:" THOBISOBISSOBOMOBEROBEOBALLYGROBEOBATBOBOLDTOBEXT" 这就是我写的方法。

public static String unObify(String param) {

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

    return deleteOB;

}

输出:THISISSMEREALLYGREATLDTEXT

但问题是这个方法还删除了我的String中的O和B.我只想删除一个接一个发生的OB。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

使用当前正则表达式[OB],您可以指定与OB匹配的字符类。

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

OB(?=[AEIOU])

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

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

public static String unObify(String param) {

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

    return deleteOB;

}

那会取代

THOBISOBISSOBOMOBEROBEOBALLYGROBEOBATBOBOLDTOBEXTTHISISSOMEREALLYGREATBOLDTEXT

THOBSOBISSOBOMOBEROBEOBALLYGROBEOBATBOBOLDTOBEXTTHOBSISSOMEREALLYGREATBOLDTEXT