我想删除" OB"从我在每个元音之前放的字符串。 例如:"这是一些非常棒的文字" &安培;在向它添加OB之后:" THOBISOBISSOBOMOBEROBEOBALLYGROBEOBATBOBOLDTOBEXT" 这就是我写的方法。
public static String unObify(String param) {
String deleteOB = param.replaceAll("[OB]", "");
return deleteOB;
}
输出:THISISSMEREALLYGREATLDTEXT
但问题是这个方法还删除了我的String中的O和B.我只想删除一个接一个发生的OB。
答案 0 :(得分:1)
删除[]
并撰写.replaceAll("OB(?=[AaEeIiOoUu])", "");
。
[]
表示单独匹配[]
内的任何内容
答案 1 :(得分:1)
使用当前正则表达式[OB]
,您可以指定与O
或B
匹配的字符类。
如果你想在每个元音之前替换OB
,你可以使用正向前瞻来断言后面是元音:
或者正如@Tim Biegeleisen所指出的那样,使用make lookahead不区分大小写:
OB(?=(?i)[AEIOU](?-i))
要么
OB(?=[aeiouAEIOU])
public static String unObify(String param) {
String deleteOB = param.replaceAll("OB(?=[AEIOU])", "");
return deleteOB;
}
那会取代
THOBISOBISSOBOMOBEROBEOBALLYGROBEOBATBOBOLDTOBEXT
至
THISISSOMEREALLYGREATBOLDTEXT
和
THOBSOBISSOBOMOBEROBEOBALLYGROBEOBATBOBOLDTOBEXT
至
THOBSISSOMEREALLYGREATBOLDTEXT