9
votes

Conservez les caractères de motif tout en divisant via Regex, Ruby

J'ai la chaîne suivante xxx

Je souhaite cette chaîne dans le tableau suivant xxx

J'ai utilisé la regex suivante, Il se divise correctement mais omet également le motif correspondant, je souhaite également conserver ce motif. Ce que je reçois est xxx

il omit le motif correspondant.

Peut-il aider à conserver ces caractères ainsi que dans la matrice résultante < / p>


0 commentaires

3 Réponses :


7
votes

4 commentaires

Merci pour la réponse, mais cela me donne l'erro ruby-1.8.7-p302> str = "helloworld comment ça va je amfine" => "helloworld comment ça va i a amfine" ruby-1.8.7-p302> str .split / (? <= [az]) (? = [AZ]) / SyntaxError: Compiler erreur (IRB): 987: Séquence indéfinie (? ...): / (? <= [az]) (? = [AZ]) / de (IRB): 987 de: 0


Alors, quelle serait la solution en 1.8? Je dois utiliser 1.8.7


J'ai trouvé la réponse de l'un de mes collègues, pour 1.8.7, procédez comme suit. str.underscore.split (/ _ /). Chaque fut | S | S.Capitaliserez! fin


@ Alex-kliuchnikau Vous pouvez le faire 1.8 en utilisant #scan au lieu de #split. Ensuite, vous n'avez pas besoin de la lunette d'oeil.



-1
votes

Je pense que cela fera le travail pour vous

str.underscore.split(/_/).each do |s| 
s.capitalize! 
end


5 commentaires

Note pour les futurs visiteurs: cela fonctionnera pour les rails et ne fonctionnera pas pour le code PURE RUBY car Underscore est une méthode spécifique aux rails.


Note pour l'avenir: cela ne fonctionnera que s'il n'y a pas de soulignement dans le texte original.


Note pour l'avenir: Dans mon cas, j'ai utilisé des rails et les chaînes que j'ai manipulées ne contiennent pas «_», mais les préoccupations soulevées par @Joelparkerhenderson et @Alex sont absolument valides et doivent être prises en compte avant d'utiliser un soulignement fonction. Merci @joel et @Alex à nouveau.


@ Nadeem-Yasin Cette réponse que vous avez acceptée n'est pas une bonne, souffrant de bugs de caractères spéciaux et nécessitant une bibliothèque de rails.


Je suis d'accord avec Dbenhur; Son Scan Lookahead est plus court, plus rapide et plus sûr que cette solution et que mes solutions proposées. IMHO, vous devriez changer pour accepter DBENHUR'S.