es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Regex | Cómo excluir patrones específicos de caracteres.

En la pregunta, necesito una expresión regular que acepte todo excepto patrones de cadenas específicos. He intentado usar ejemplos de negative lookahead del foro de preguntas de Stackoverflow:

https://stackoverflow.com/questions/1687620/regex-match-everything-but-specific-pattern

Pero parece que los patrones de palabras son diferentes a los patrones de caracteres.

Los patrones que necesito excluir están enumerados a continuación:

Patrones de caracteres para excluir

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para excluir patrones específicos de cadenas, puede utilizar una mirada negativa hacia adelante en su expresión regular. Sin embargo, en este caso, los patrones a excluir son en realidad patrones de caracteres. Por lo tanto, puede utilizar una clase de caracteres para hacer coincidir cualquier carácter excepto aquellos en los patrones específicos.

    Aquí hay un ejemplo de regex que coincidirá con todo excepto con los patrones específicos de caracteres mostrados en la imagen:

    /^(?:(?!ab|cd|ef).)*$/
    

    En este regex, la parte (?:(?!ab|cd|ef).)* hace coincidir cualquier carácter (.) cero o más veces (*), siempre y cuando no esté seguido inmediatamente por los patrones específicos ab, cd o ef (utilizando una mirada negativa hacia adelante (?!...)).

    Los anclajes ^ y $ aseguran que el regex haga coincidir toda la cadena en lugar de sólo una parte de ella.

    Puede personalizar los patrones específicos en la mirada negativa hacia adelante reemplazando ab|cd|ef con los patrones deseados a excluir.

Comments are closed.