2012-03-06 31 views
11

[^ abc] Cualquier carácter excepto: a, b, ocRegexp: Cualquier carácter excepto secuencia

Pero cómo puedo hacer expresiones regulares para cualquier carácter excepto secuencia abc

Por lo tanto, algo así

"Hello abc awesome world".scan /[^(abc)]+/ 

Volveremos "Hello" y "awesome world".

PD: Y no se trata de dividir la cadena

+0

Relacionados: http://stackoverflow.com/q/5504272/946850 – krlmlr

+0

También relacionado, más de cerca quizás: http://stackoverflow.com/q/6180556/946850 – krlmlr

+0

¡Gracias, nombre de usuario! :) – fl00r

Respuesta

15

Esto se llama lookaround, en su caso, usted querrá utilizar búsqueda negativa hacia delante. No estoy seguro acerca de la sintaxis exacta en Ruby, pero algo a lo largo de (?!abc) podría funcionar. Tenga en cuenta que la apariencia no consume ninguna entrada, por lo que tendrá que tener esto seguido de cualquier patrón que quiera emparejar. Tal vez (?:(?!abc).)+ es lo que estás buscando?

+1

Me salvó mucho tiempo. Estaba haciendo '(?! Abc). +', Lo que hizo que el aspecto negativo fuera una secuencia completa de caracteres. Parece que esto lo hace carácter por personaje, lo que ni siquiera se me ocurrió. Ahora todo está bien y feliz. Gracias! – user1630830

Cuestiones relacionadas