ルディCahyanto:
私はすべてを交換するx
以外のすべての文字列または文字列の末尾にし、後ろaiueo
でnya
。入力と出力を期待:
入力: bapakx
出力: bapaknya
私はこの1つを試してみました:
String myString = "bapakx";
String regex = "[^aiueo]x(\\s|$)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(myString);
if(m.find()){
myString = m.replaceAll("nya");
}
しかし、出力ではありませんbapaknya
けどbapanya
。k
文字も置き換えられます。私はこれをどのように解決することができますか?
anubhava:
子音バックの使用取得するには幅がゼロとしてあなたの正規表現で後読みを:
String regex = "(?<=[^aiueo])x(?=\\s|$)";
ここで(?<=[^aiueo])
意志だけの存在アサートconsonant
する前にx
、それとは一致しません。
別の方法としては、キャプチャグループを使用することができます。
String regex = "([^aiueo])x(\\s|$)";
それを使用します:
myString = m.replaceAll("$1nya");