Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

218
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!