Ich habe ein Array, das übereinstimmende Werte enthalten sollte, wie unten zu sehen ist.Ruby - Regulärer Ausdruck für passende Paare
gemstone = ["ruby", "red"]
ich einen regulären Ausdruck verwenden keine unmöglich Kombinationen zu verwerfen, wie zum Beispiel:
Rubin blau
Saphir grün
Smaragd rot
Nun, Sie bekommen die Idee. Ich verwende den folgenden regulären Ausdruck, um nach Kombinationen zu suchen, aber dies führt zu einem falschen Ergebnis.
(?=.*ruby)(?=.*red).*|(?=.*emerald)(?=.*green).*|(?=.*sapphire)(?=.*blue).*
Wenn ein Edelstein seine richtige Farbe haben nicht, würde ich es verwerfen möchte, aber es wirft auch richtige Kombinationen, wie zum Beispiel:
saphirblau
grüne Smaragd
Wie würde ich nur die richtigen Kombinationen finden?
Eine Struktur wie '{ruby:% w [rot], Diamant:% w [clear blue yellow]}' wäre hier mit * viel * einfacher zu bearbeiten. – tadman
Überprüfen Sie http://rubular.com, um Ihre Regex zu testen –
Wie binden Sie die RE an das Array? – cdarke