tutorial online examples regex

online - regex python



Regex: coincide con todo, pero (7)

Necesito una expresión regular capaz de hacer coincidir todo, excepto una cadena que comienza con un patrón específico (específicamente index.php y lo que sigue, como index.php?id=2342343 )


¿Qué tal si no usas Regex?

// In PHP 0 !== strpos($string, ''index.php'')


En Python:

>>> import re >>> p=''^(?!index/.php/?[0-9]+).*$'' >>> s1=''index.php?12345'' >>> re.match(p,s1) >>> s2=''index.html?12345'' >>> re.match(p,s2) <_sre.SRE_Match object at 0xb7d65fa8>


No soy un experto en expresiones regulares, pero creo que podrías usar un lookahead negativo desde el principio, por ejemplo ^(?!foo).*$ No debería coincidir con nada que comience con foo .


Puede poner ^ en el comienzo de un conjunto de caracteres para que coincida con cualquier cosa que no sean esos caracteres.

[^=]*

coincidirá todo pero =


Regex: combina todo pero :

Nota demo : la nueva línea /n se usa dentro de las clases de caracteres negadas en demostraciones para evitar el desbordamiento de coincidencia a la (s) línea (s) vecina (s). No son necesarios cuando se prueban cadenas individuales.

Nota de anclaje : en muchos idiomas, use /A para definir el inicio no ambiguo de la cadena, y /z (en Python, es /Z , en JavaScript, $ está OK) para definir el final de la cadena.

Nota de puntos : en muchos sabores (pero no en POSIX, TRE, TCL),. coincide con cualquier char, pero con un carácter nuevo. Asegúrese de utilizar un modificador DOTALL correspondiente ( /s en PCRE / Boost / .NET / Python / Java y /m en Ruby) para . para que coincida con cualquier char incluyendo una nueva línea.

Nota de retroceso : en los idiomas en los que debe declarar patrones con cadenas C que permiten secuencias de escape (como /n para una línea nueva), debe doblar las barras diagonales que escapan de caracteres especiales para que el motor los trate como caracteres literales (por ejemplo, en Java world/. se declarará como "world//." , o usará una clase de caracteres: "world[.]" ). Utilice literales de cadena sin formato (Python r''/bworld/b'' ), C # literal literales de cadena @"world/." , o notaciones literales slashy strings / regex como /world/./ .


Simplemente /^index/.php/ coincidir /^index/.php/ luego rechace lo que corresponda.


grep -v en shell

! ~ en perl

Agregue más en otros idiomas: marqué esto como Wiki de la comunidad.