Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

206
Vistas
¿Cómo haría coincidir `.scss`, `.sass`, `.css` pero no `.ass`? (Expreg)

Tengo la siguiente expresión regular: /\.([s]?[ac]ss)$/ . El problema es que coincide con .scss , .sass , .css , .ass . ¿Cómo podría hacer que no coincida con .ass ?

over 4 years ago · Santiago Trujillo
6 Respuestas
Responde la pregunta

0

Puedes usar

 \.(?!a)(s?[ac]ss)$

Vea la demostración de expresiones regulares . Detalles :

  • \. - un punto
  • (?!a) - el siguiente carácter no puede ser a
  • (s?[ac]ss) - Grupo 1: una s opcional, a o c y luego ss
  • $ - final de la cadena.

Otra expresión regular que puede funcionar es

 \.(s(?:css|ass)|css)$

Vea esta demostración de expresiones regulares . Detalles :

  • \. - un punto
  • (s(?:css|ass)|css) - s y luego css o ass o css
  • $ - final de la cadena.

NOTA : si tiene una lista dinámica definida por el usuario de tales cadenas fijas para hacer coincidir después de un archivo . al final de la cadena, puede crear estas expresiones regulares automáticamente usando el código en la parte inferior de mi respuesta .

over 4 years ago · Santiago Trujillo Denunciar

0

Además, esto coincidirá solo con .scss , .sass y .css , es muy legible y se explica por sí mismo.

 /\.(sc|sa|c)ss$/
over 4 years ago · Santiago Trujillo Denunciar

0

Otra forma de usar la alternancia:

 \.((?:s[ac]|c)ss)$

Demostración RegEx

Aquí, este grupo que no captura (?:s[ac]|c) coincidirá con sa o sc o simplemente con c .

over 4 years ago · Santiago Trujillo Denunciar

0

¿Qué tal si solo

 /\.(s?css|sass)$/

Regex no necesita ser muy complejo para funcionar. Esto es mucho más fácil de leer para otros programadores ( es decir, usted en unos 3 meses ) y hace lo mismo.

Seguro que puedes mezclarlo más, pero ¿por qué lo harías? Las expresiones regulares son lo suficientemente complicadas, mantenlas simples si puedes :)

Manifestación

over 4 years ago · Santiago Trujillo Denunciar

0

Puede enumerar los que desea hacer coincidir:

 let rx = /\.css|\.sass|\.scss/; // alphabetized for future maintenance

Esto no es elegante, pero es muy claro y fácil de agregar más adelante.

Lo probé aquí : ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar

0

En su patrón \.([s]?[ac]ss)$ coincide con .ass porque la s inicial es opcional y la clase de carácter [ac] puede coincidir con ambos caracteres.

En su lugar, podría usar aserciones de búsqueda o usar una alternancia | permitir sólo ciertas alternativas.

Algunas otras variaciones podrían ser:

 \.(s?c|sa)ss$
  • \. Coincide con un .
  • ( Grupo de captura 1
    • s?c|sa Coincide con una s opcional y luego coincide con c o coincide con sa
  • ) Cerrar grupo 1
  • ss$ Coincide con ss al final de la cadena

Demostración de expresiones regulares

 \.(s[ac]|c)ss$

Una variación del patrón anterior, que ahora coincide con sa o sc o c

Demostración de expresiones regulares

Si en su entorno se admite la aserción lookbehind :

 \.s?[ac]ss$(?<!\.ass)
  • \.s? Coincide con un . s opcionales
  • [ac] Coincide con a o c
  • ss$ Coincide con ss al final de la cadena
  • (?<!\.ass) Negativo mirar atrás, afirmar no .ass a la izquierda

Demostración de expresiones regulares

Tenga en cuenta que si solo desea una coincidencia, también puede usar un grupo que no sea de captura (?:...) en su lugar.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda