donné une chaîne comme: Je voudrais: p> divisé par J'ai essayé pourquoi? Comment pourrais-je obtenir le résultat attendu? P> LI>
Obtenez le numéro de Comment feriez-vous cela? P> LI>
ul> J'utilise Ruby 1.9.2. P> p>
(\ r \ n) + code>, c'est-à-dire que je voudrais obtenir:
["good", "jour", "pile", "Stack", "Stack", " "] code> p>
s.split (/ (\ r \ n) + /) code> mais cela ne me donne pas le résultat attendu. P>
\ r \ n code> dans le tableau, c'est-à-dire que le résultat attendu est le suivant: [1, 3, 2] p>
5 Réponses :
Voici comment j'irais ici:
s = "G o o d\r\nDay\r\n\r\n\r\nStack\r\n\r\nOverflow\r\n" s.split(/[\r\n]+/) # => ["G o o d", "Day", "Stack", "Overflow"]
Presque, essayez ceci: ceci donne [1,3,2,1] code> qui est éventuellement la réponse "réelle". Mais sinon,
s.chomp.scan ... code> donnerait
[1,3,2] code>. P> p>
Cela divise également sur le \ r code>,
\ n code>,
\ n \ n \ r \ n code> etc. Ce n'est pas exactement ce qui a été demandé, mais probablement une meilleure idée.
Vous voulez scinder par / [\ r \ n] + / code>
Votre Si le motif contient des groupes, les correspondances respectives seront également renvoyées dans la matrice. P>
blockQuote> Une solution facile serait de scinder sur Split (/ (\ r \ n) + /) code> ne fonctionne pas comme prévu parce que Les groupes de capture sont inclus dans le tableau renvoyé:
\ r \ n code> et de jeter les fichiers: p>
Vous ne devriez pas obtenir \ r \ n code> dans vos chaînes, sauf si vous lisez dans un fichier texte Windows en mode binaire. Lisez-la en mode texte et Ruby corrige le
\ r code> s pour vous automatiquement. P>