2017-06-05 2 views
-3

in einer Nut-Shell brauche ich zwei reguläre Ausdrücke zu erkennen. CSS oder. SCS-Dateien.Javascript Regex Einstellung entgegengesetzte Regeln

Ich brauche true zurück, wenn die folgenden Kriterien erfüllt ist:

# 1

  • Dateiname kann alles sein, muss aber nicht gleich ‚global‘
  • Dateierweiterungen müssen entweder 'Css oder' .scss'

# 2

  • Dateiname muss 'global' gleich
  • Dateierweiterungen entweder sein muss '.css' oder' .scss'
+1

Können Sie uns zeigen, was Sie bereits versucht haben? – horcrux

Antwort

-1

Regex A:

^global\.s?css$ 

Regex B:

\.s?css$ 

Ihr Anwendungsfall # 2 ist wahr, wenn Regex A übereinstimmt. Ihr Anwendungsfall Nr. 1 ist wahr, wenn Regex A nicht übereinstimmt und Regex B übereinstimmt.

Insbesondere: ^ bedeutet "Start der Zeichenfolge", die garantiert, dass die ersten sechs Zeichen in der übereinstimmenden Zeichenfolge sind global. \. bedeutet "Übereinstimmung mit einem Punkt". Ohne die \, . bedeutet allein "jedes beliebige Zeichen", was wir nicht wollen. s? bedeutet "passen Sie entweder nichts oder eine s". $ bedeutet "Ende der Zeichenfolge", die garantiert, dass die letzten drei Zeichen in der übereinstimmenden Zeichenfolge css sind.

+0

Das ist großartig, aber ich muss explizit sagen, dass 'global' in der Regex b nicht erlaubt ist. Ist das möglich? '!' ' – Samuel

+0

Ja, Sie können'^(!? global \ .s? Css $). * \. S? Css $ 'verwenden. – Welbog

+0

Wow danke! sollte das sein? (?! global \ .s? css $). * \. s? css $ ' – Samuel