Etant donné une chaîne de recherche "voitures 'chiens et chats' marteaux de poisson '", quelle est la meilleure regex pour capturer tous les termes de recherche. Il devrait supporter des guillemets simples et doubles. Une réponse amicale Ruby si possible.Comment analyser une chaîne de recherche entre guillemets avec regex?
Répondre
En utilisant String#scan
:
irb> "cars 'cats and dogs' fish 'hammers'".scan /'.+?'|".+?"|[^ ]+/
=> ["cars", "'cats and dogs'", "fish", "'hammers'"]
Oh, et pour se débarrasser des guillemets autour du résultat:
irb> ["cars", "'cats and dogs'", "fish", "'hammers'"].map { |s| s.gsub /^['"]|['"]$/, '' }
=> ["cars", "cats and dogs", "fish", "hammers"]
Cela fonctionne et je peux l'utiliser, mais j'aimerais faire le travail sans la carte. J'ai une regex qui fait presque l'affaire mais qui capture une citation supplémentaire sur des phrases entre guillemets:/("?) \ S * \ b (\ S [^ \ 1] *?) \ B \ s * \ 1/ – Gavin
' s.scan (/'(.+?) '| "(. +?)" | ([^] +) /). flatten.compact' exclura les guillemets –
@Wayne, cela ne fonctionne pas. supprime toutes les citations, y compris celles entourant une phrase de recherche comme 'chiens et chats' – Gavin
- 1. Comment analyser une chaîne entre guillemets dans une autre chaîne?
- 2. Extraire une chaîne entre guillemets
- 3. RegEx: chaînes (doubles) entre guillemets
- 4. Comment analyser cette chaîne avec regex?
- 5. Java Regex pour la chaîne entre guillemets avec des guillemets échappés
- 6. Regex - ignorer certains caractères entre guillemets
- 7. Comment faire correspondre une chaîne entre guillemets suivie d'une chaîne entre accolades?
- 8. Regex - remplacement textwhich n'est pas entre guillemets
- 9. Diviser/diviser une chaîne entre guillemets
- 10. RegEx avec une chaîne
- 11. Comment faire correspondre une chaîne entre guillemets avec des guillemets échappés?
- 12. regex pour analyser une chaîne de type URL en PHP
- 13. regex pour cela exclut les correspondances entre guillemets
- 14. Recherche Hpricot avec Regex
- 15. regex pour analyser csv
- 16. C# et Regex: Comment extraire les chaînes entre guillemets
- 17. Regex pour correspondre à tous sauf une chaîne entre guillemets dans C#
- 18. guillemets simples PHP regex
- 19. J'ai besoin d'une regex pour analyser le mot-clé = 'value' avec des guillemets simples ou doubles
- 20. Correspond au premier nombre/mot/chaîne entre guillemets dans l'aide de Input - Regex
- 21. Comment analyser une chaîne avec 0
- 22. Conversion d'une chaîne entre guillemets en guillemets doubles
- 23. Parse chaîne entre guillemets en jetons en javascript
- 24. regex vim pour remplacer les espaces entre guillemets
- 25. Séparer une chaîne sur des virgules ne figurant pas entre guillemets avec une torsion
- 26. Comment faire match regex dans une chaîne avec des guillemets en C#
- 27. expression regex pour la chaîne entre guillemets échappée ne fonctionnera pas dans preg_match_all de php
- 28. Recherche de groupes de lettres avec regex
- 29. regex pour analyser html
- 30. Obtenir des valeurs entre guillemets
ce propos de l'imbrication - 'les voitures "chats 'et' chiens"'? – Anurag
oui, c'est un autre cas qui doit être résolu. – Gavin