solo regulares regular probar palabra online numeros expresiones expresion exacta especiales espacio ejemplos crear caracteres blanco alfanumerico regex google-analytics regex-negation

regex - regulares - Expresión regular para una cadena que contiene una palabra pero no otra



expresiones regulares javascript caracteres especiales (5)

Estaba buscando una manera de evitar --línea amortiguada en una cola en una situación similar a la OP y la solución de Kobi funciona muy bien para mí. En mi caso, excluyendo líneas con "bot" o "spider" mientras incluyo ''/'' (para mi documento raíz).

Mi comando original:

tail -f mylogfile | grep --line-buffered -v ''bot/|spider'' | grep '' / ''

Ahora se convierte en (con "-P" interruptor perl):

tail -f mylogfile | grep -P ''^(?!.*(bot|spider)).*/s///s.*$''

Estoy configurando algunos objetivos en Google Analytics y podría utilizar un poco de ayuda de expresiones regulares.

Digamos que tengo 4 URL

http://www.anydotcom.com/test/search.cfm?metric=blah&selector=size&value=1 http://www.anydotcom.com/test/search.cfm?metric=blah2&selector=style&value=1 http://www.anydotcom.com/test/search.cfm?metric=blah3&selector=size&value=1 http://www.anydotcom.com/test/details.cfm?metric=blah&selector=size&value=1

Quiero crear una expresión que identifique cualquier URL que contenga el selector de cadena = tamaño pero NO contiene detalles.cfm

Sé que para encontrar una cadena que NO contenga otra cadena, puedo usar esta expresión:

(^((?!details.cfm).)*$)

Pero no estoy seguro de cómo agregar la porción del selector = tamaño .

¡Cualquier ayuda sería muy apreciada!


Esto debería hacerlo:

^(?!.*details/.cfm).*selector=size.*$

^.*selector=size.*$ debe ser lo suficientemente claro. El primer bit, (?!.*details.cfm) es una búsqueda anticipada negativa: antes de hacer coincidir la cadena, verifica que la cadena no contenga "details.cfm" (con cualquier número de caracteres antes).


Una forma simple de hacerlo es especificar 0 instancias de la cadena haciendo lo siguiente

(string_to_exclude){0}


regex podría ser (sintaxis perl):

`/^[(^(?!.*details/.cfm).*selector=size.*)|(selector=size.*^(?!.*details/.cfm).*)]$/`


^(?=.*selector=size)(?:(?!details/.cfm).)+$

Si su motor regex admite cuantificadores posivos (aunque sospecho que Google Analytics no lo hace), entonces supongo que funcionará mejor para los grandes conjuntos de entrada:

^[^?]*+(?<!details/.cfm).*?selector=size.*$