Чтобы получить согласную обратно Используйте нулевую ширину lookbehind в вашем регулярном выражении как:
String regex = "(?<=[^aiueo])x(?=\\s|$)";
Здесь (?<=[^aiueo])
будет только утверждать присутствие consonant
до x
, но выиграноне соответствует.
В качестве альтернативы вы можете использовать группы захвата:
String regex = "([^aiueo])x(\\s|$)";
и использовать его как:
myString = m.replaceAll("$1nya");