2011-05-19 219 views

Respuesta

15
string.replaceAll("[aeiou]\\B", "") 

Reads: Que todas las vocales ([aeiou]) que no van seguidos de un "final de la palabra" (\\B). Para obtener más información, lea el Javadoc en java.util.regex.Pattern

+0

¿No bastaría con '\ B'? Sin embargo, es potencialmente problemático, ya que eso (y '\ b') indica solo un límite entre los caracteres de la palabra y de la palabra. Para la mayoría de los lenguajes naturales, la definición de expresiones regex de los caracteres de las palabras no es suficiente. – Joey

+0

Tenga en cuenta que '\ b' y' \ B' no son caracteres, sino anclas de ancho cero. No consumen ni combinan ningún personaje. – Joey

3

Convierta la cadena en una matriz char.

Iterar a través de él.

Agregue cada carácter a un StringBuilder, a menos que el siguiente carácter sea un carácter alfabético.

+1

Eso son tantas líneas de código, cuando * podría * usar una expresión regular ... ;-) –

+0

Perfectamente cierto. Mi error. Paso tanto tiempo diciéndole a la gente "No use expresiones regulares cuando una instrucción' if' sí "o" * no * analice HTML con expresiones regulares "que a veces las omito cuando * son * apropiadas. –

Cuestiones relacionadas