zu bekommen, wenn ich zum Beispiel eine Liste von Strings habe wie 'car 24'
, 'house'
, 'charlet bundle 54'
, 'chroma5one jenkin 4'
, 'm8rial imperial 54'
. Ich möchte einen Regex Matcher erstellen, so dass jedes der Elemente die entsprechenden Ergebnisse ergibt:Spiel Zeichenfolge und Nummer mit Regex die Position und Menge aus dem String
"car 24" #=> {item: 'car', quantity: 24}
"house" #=> {item: 'house', quantity: nil}
"charlet bundle 54" #=> {item: 'charlet bundle', quantity: 54}
"chroma5one jenkin 4" #=> {item: 'chroma5one jenkin', quantity: 4}
"m8rial imperial 50" #=> {item: 'm8rial imperial', quantity: 50}
"hou58" #=> {item: 'hou58', quantity: nil}
Bisher habe ich verschiedene Methoden ausprobiert, aber sie scheinen nicht perfekt zu funktionieren. Zum Beispiel (?<item>[[a-zA-Z0-9\s]*]+)(?<quantity>\d+)?
Eine, die zu arbeiten scheint, ist: , aber es erfordert immer einen leeren Platz nach jedem Ausdruck. Jede Hilfe wäre willkommen. Danke
Sind sie Saiten? Wenn ja, machen Sie es deutlich, indem Sie sie als String-Literale schreiben. Außerdem ist '=>' innerhalb der Code-Formatierung verwirrend mit dem Hash-Literal. Ändern Sie es in '# =>'. – sawa
Was wäre, wenn du "hou58" hättest? Was ist das erwartete Ergebnis? '{item:" hou ", Menge: 58}', '{item:" hou5 ", Menge: 8}', '{item:" hou58 ", Menge: nil}' oder etwas anderes? – sawa
danke @sawa. Ich habe gerade das Beispiel des '' hou58'' aktualisiert. es sollte zurückgeben '{item:" hou58 ", menge: nil}' – oreoluwa