2016-10-24 1 views
0

Je veux que mon expression régulière retourne un énumérateur qui retournerait des blocs avec des mots qui ne sont pas des chiffres, quelle est la meilleure façon de l'obtenir?ruby ​​regexp pour trouver un mot qui ne contient pas de chiffres

J'ai essayé suivante:

regexp= /(?=\w+)(?=^(?:(?!\d+).)*$)/ 
"this is a number 1234".split(regexp) # ["this is a number 1234"] 

où je m'y attendais (? = \ W +) doivent veiller à ce si c'est mot ou non et je me attendais (=^(:? (\ D +)?!.) * $) pour s'assurer qu'il ne contient aucun chiffre.

Je me attendais à une sortie:

["this", "is", "a", "number"] 

Répondre

0

scan est plus facile que split pour cela:

regexp = /\b[[:alpha:]]+\b/ 
p "this is a number 1234".scan(regexp) 
# => ["this", "is", "a", "number"] 
0

Essayez de suivre.

p "this is a number 1234".scan(/\D+/).first.split(' ')