Scinde une chaîne à partir de la deuxième occurrence du caractère
De fractionnement de la chaîne à partir de la deuxième occurrence du caractère
str = "20050451100_9253629709-2-2"
I need the output
["20110504151100_9253629709-2", "2"]
Basé sur votre réponse, il semble que vous êtes prêt à régler pour le fractionnement sur le dernier trait d'union, pas strictement le 2ème. Vous devriez assurez-vous que dans vos données, le 2ème est toujours le dernier.
OriginalL'auteur Mr. Black | 2011-05-11
Vous devez vous connecter pour publier un commentaire.
Vous pourriez utiliser l'expression régulière correspondant à:
L'expression régulière correspond à "rien", suivi d'un tiret suivi par nombre de chiffres.
Cette réponse est assez vieux, mais quelqu'un pourrait-il décrire ou le lien de la syntaxe de la chaîne de match?
OriginalL'auteur hallidave
Il n'y a rien comme un one-liner 🙂
Il va inverser la chaîne, divisé par " - "une fois, revenant ainsi à 2 éléments (les trucs en avant de la première" - " et tout ce qui suit), avant d'inverser les deux éléments, puis le tableau lui-même.
Modifier
En effet, j'étais tout simplement en essayant d'éviter illisible expressions régulières, qui à mon humble avis sont un peu overkill pour ce plutôt simple problème. J'ai mis à jour ma réponse avec un deux-liner de remplacement.
Pour moi, la meilleure réponse parmi tous les autres.
OriginalL'auteur gnab
Si vous avez toujours deux traits d'union, vous pouvez obtenir le dernier indice de la
-
:OriginalL'auteur McStretch
Qui correspondent à n'importe quelle chaîne de caractères, en les divisant par la deuxième occurrence de
-
.str.match(/^([^-]*\-[^-]*)\-(.*)$/).to_a[1..-1]
OriginalL'auteur Douglas F Shearer
Vous pourriez séparer et de le joindre à nouveau ensemble:
OriginalL'auteur seph