On dirait qu'il s'agit d'un travail pour une expression rationnelle rapide et sale.
string1 = "1.1.67.01-f9@92a47088f49d095f0"
/^([^-]*)-/ =~ string1
puts $1
Décomposons l'expression régulière
/^([^-]*)-/
En /
sont les guillemets des expressions rationnelles, un peu comme "
sont pour les cordes. A l'intérieur de la regex, ^
marque le début de la chaîne et -
est un tiret littéral (qui met fin à notre correspondance dans ce cas). Nous avons ensuite un groupe de capture (...)
ce qui indique que c'est la partie du match que nous sommes en train d'examiner. intéressés en. À l'intérieur, nous faisons correspondre tout caractère qui n'est pas un tiret ( [^-]
), répétées zéro fois ou plus ( *
).
Après une correspondance réussie, nous imprimons le premier (et, dans notre cas, le seul) groupe de capture $1
.