2 votes

Méthode rapide pour extraire une sous-chaîne d'une chaîne de caractères en Ruby en utilisant n'importe quelle méthode

En tant que débutant en Ruby, comment puis-je extraire une sous-chaîne à l'intérieur d'une chaîne de caractères en Ruby ?

Exemple :

string1 = "1.1.67.01-f9@92a47088f49d095f0"

Je veux extraire une chaîne de caractères du début jusqu'à '-'. La sous-chaîne est donc '1.1.67.01'

2voto

Chase McDougall Points 131

Si vous pouvez garantir que le premier - apparaît à la suite de la sous-chaîne souhaitée, La séparation des chaînes de caractères de Ruby est un bon candidat pour cela. Cela ressemblerait à quelque chose comme :

string1.split('-')[0]

2voto

steenslag Points 29662

Celui-ci utilise l'index du premier - pour découper la chaîne (0 étant le début de la chaîne) :

substring = string1[0, string1.index("-")]

1voto

Silvio Mayolo Points 13050

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 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X