*, ?, +
todos los caracteres coinciden con este personaje. ¿Qué personaje significa 'no' hacer coincidir esto? Los ejemplos ayudarían.¿Qué operador de expresión regular significa 'No' coincide con este personaje?
Respuesta
Puede usar clases de caracteres negadas para excluir ciertos caracteres: por ejemplo, [^abcde]
hará coincidir cualquier cosa excepto los caracteres a, b, c, d, e.
En lugar de especificar todos los personajes, literalmente, puede utilizar taquigrafías dentro de las clases de caracteres: [\w]
(en minúsculas) coincidirá con cualquier carácter "palabra" (letras, números y guión bajo), [\W]
(mayúsculas) coincidirá con nada pero la palabra caracteres; del mismo modo, [\d]
coincidirá con los dígitos 0-9, mientras que [\D]
coincide con cualquier cosa que no sean los dígitos 0-9, y así sucesivamente.
Si utiliza PHP puede echar un vistazo al regex character classes documentation.
^
utilizado al comienzo de un rango de caracteres, o negativas aserciones lookahead/lookbehind.
>>> re.match('[^f]', 'foo')
>>> re.match('[^f]', 'bar')
<_sre.SRE_Match object at 0x7f8b102ad6b0>
>>> re.match('(?!foo)...', 'foo')
>>> re.match('(?!foo)...', 'bar')
<_sre.SRE_Match object at 0x7f8b0fe70780>
¿Tiene que usar '?!' En los últimos 2 ejemplos o puede simplemente usar '!' Por sí mismo ? ¿Qué hace '?' Hacer allí? –
Python necesita el '?' Para decir que es una extensión. Otros motores de expresiones regulares pueden tener sus propias reglas. –
@Click: Es bastante estándar. http://www.regular-expressions.info/refadv.html, también la mayoría de los manuales del motor regexp dicen lo mismo. – Amadan
Hay dos maneras de decir "no coinciden": rangos de caracteres, y de anchura cero negativo de búsqueda hacia delante/búsqueda hacia atrás.
El primero: no coinciden a
, b
, c
o 0
: [^a-c0]
Este último: coincidirá con cualquier cadena de tres letras, excepto foo
y bar
:
(?!foo|bar).{3}
o
.{3}(?<!foo|bar)
Además, una corrección para usted: *
, ?
y +
en realidad no coinciden con nada. Son operadores de repetición, y siempre siguen un operador coincidente. Por lo tanto, significa a+
partido de uno o más de a
, [a-c0]+
significa partido de uno o más de a
, b
, c
o 0
, mientras [^a-c0]+
coincidiría con uno o más de cualquier cosa que no era a
, b
, c
o 0
.
[^]
(a menos de []) es la negación en expresión regular mientras que ^
es "comienzo de cadena"
[^a-z]
partidos cualquier carácter individual que es no de "a" a "z"
^[a-z]
significa de cadena comienza con "a" a la "z"
- 1. ¿Qué significa este operador?
- 2. ¿Qué significa esta expresión regular?
- 3. ¿Qué significa este ~ operador aquí?
- 4. Expresión regular: ¿solo coincide con 7 caracteres?
- 5. Expresión regular ¿Coincide con líneas múltiples variables?
- 6. ¿Qué coincide con la expresión regular "\\ p {Cntrl}" en Java?
- 7. ¿Qué significa la expresión regular (? <! -)
- 8. Hace. realmente coincide con cualquier personaje?
- 9. ¿Qué significa la expresión regular \ | (? = \ W =>)?
- 10. ¿Qué significa la expresión regular/_/g?
- 11. ¿Qué significa "?:" En una expresión regular de Python?
- 12. ¿Qué significa regular en expresiones regulares/"expresión regular"?
- 13. Expresión regular que coincide con todo excepto con una expresión regular dada
- 14. Java expresión regular operador OR
- 15. ¿Por qué mi expresión regular con r'string 'coincide pero no' cadena 'con Python?
- 16. ¿Cuál es la expresión regular que coincide con un corchete?
- 17. Fuerza Cerrar en la expresión regular! Coincide
- 18. Expresión regular Excepto este caracteres
- 19. expresión regular de python que coincide con cualquier cosa
- 20. Retransmisión de expresión coincide con
- 21. Qué significa "\ 2" al final de una expresión regular
- 22. ¿Coincide una consulta con una expresión regular en SQL?
- 23. contraseña fuerte expresión regular que coincide con cualquier Char especial
- 24. Expresión regular: coincide con todas las palabras excepto
- 25. Operador lógico Y con la expresión regular de php
- 26. ¿Qué significa (? I) en una expresión regular .NET?
- 27. ¿Qué significa el operador groovy << en este contexto?
- 28. y/u operador en la expresión regular
- 29. ¿Qué significa este literal de cadena en la expresión booleana?
- 30. JSLint informa "Inseguro ^" para mi expresión regular, ¿qué significa eso?
Para la solución relacionada con no emparejar una palabra - Consulte aquí http://stackoverflow.com/questions/406230 – nslntmnx