ho una stringa:Regex con i gruppi di cattura denominati ottenere tutte le partite in Ruby
s="123--abc,123--abc,123--abc"
Ho provato ad utilizzare nuova funzionalità Ruby 1.9 di "gruppi denominati" a prendere tutte le informazioni sul gruppo denominato:
/(?<number>\d*)--(?<chars>\s*)/
Esiste un'API come Python findall
che restituisce una raccolta matchdata
? In questo caso ho bisogno di restituire due incontri, perché 123
e abc
ripetono due volte. Ogni dato di corrispondenza contiene dettagli di ciascuna informazione di acquisizione con nome in modo da poter utilizzare m['number']
per ottenere il valore della corrispondenza.
/(\ d *) - ([az] *)/se uso queste regex, come posso ottenere la stringa di corrispondenza completa, in questo caso è ['123 - abc', '123 - abc '], quindi posso creare i dati di corrispondenza per ciascun elemento da solo – mlzboy
@mlzboy, ci sono due soluzioni. Più semplice di loro è quello di aggiungere il terzo gruppo regex: '/ ((\ d *) - ([az] *))/do | tutti, numero, chars |' – Nakilon
grazie, a quanto pare il rubino non ha il supporto il pozzetto di cattura denominato – mlzboy