Match leere Zeichenfolge, Komma, Bindestrich oder Unterstrich einmal mit Regex

Ich versuche herauszufinden, wie die folgenden Zeichenfolgen übereinstimmen:

blaOSXbla
os X bla
bla os-x
blablaOS_Xbla

Ein allgemeines Muster ist ziemlich einfach:/(osx|os x|os-x|os_x)/i.test(string)

Die Aufgabe ist es, es so weit wie möglich zu minimieren. Also mein nächster Schritt ist/(os)x| x|-x|_x)/i.test(string).

Ich habe es auch versucht/os(.*?)x/ Muster, aber es entspricht einer beliebigen Anzahl von Symbolen zwischenos undx. Wie mache ich es passend Null oder ein Symbol?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage