Recuerda que en las ciencias informáticas un error puede tener diferentes resoluciones, pero mostramos lo más óptimo y mejor.
Usar mirada negativa: (?!
pattern
)
Las miradas positivas se pueden usar para afirmar que un patrón coincide. Las miradas negativas son lo contrario: se usan para afirmar que un patrón NO coincide. Algunos sabores respaldan las afirmaciones; algunos ponen limitaciones en mirar atrás, etc.
Enlaces a expresiones-regulares.info
- Lookahead y Lookbehind aserciones de ancho cero
- Comparación de sabores
Ver también
- ¿Cómo convierto CamelCase en nombres legibles por humanos en Java?
- Regex para todas las cadenas que no contienen un string?
- Una expresión regular para hacer coincidir una subcadena que no va seguida de otra subcadena determinada.
Más ejemplos
Estos son intentos de encontrar soluciones de expresiones regulares para problemas de juguetes como ejercicios; deberían ser educativos si está tratando de aprender las diversas formas en que puede usar las miradas (anidarlas, usarlas para capturar, etc.):
- codificación Bat plusOut usando regex
- codificaciónBat repetirTerminar usando regex
- codificación bat word Termina usando regex
Suponiendo que solo desea prohibir cadenas que coincidan completamente con la expresión regular (es decir, mmbla
está bien, pero mm
no lo es), esto es lo que quieres:
^(?!(?:m2|t)$).*$
(?!(?:m2|t)$)
es una anticipación negativa; dice “a partir de la posición actual, los siguientes caracteres son nomm
o t
seguido por el final de la string.” El ancla de inicio (^
) al principio asegura que la búsqueda anticipada se aplica al principio de la string. Si eso tiene éxito, el .*
sigue adelante y consume el string.
Para tu información, si estás usando Java matches()
método, realmente no necesitas el ^
y el final $
, pero no hacen ningún daño. los $
Sin embargo, se requiere dentro de la anticipación.
Agradecemos que desees añadir valor a nuestra información asistiendo con tu veteranía en las críticas.