laisser supposer que j'ai une corde: "Lorem Ipsum Dolor Sit Amet" J'ai besoin d'une liste de toutes les mots avec une longueur de plus de 3. Puis-je le faire avec des expressions régulières?
par exemple p> résultat contient "lorem", "ipsum", 'dolor' et 'amet'. p> édité: p> Les mots que je veux dire ne contient que des lettres et des chiffres. P> P>
4 Réponses :
C'est un cas d'utilisation typique pour les compréhensions de la liste dans Python, qui peut
être utilisé pour filtrer:
Mais si j'ai si j'ai "Lorem, ipsum"? Cette expression retournera «Lorem», 'ipsum'. Je n'ai pas besoin d'une virgule.
OK - Je l'ai mis à jour pour utiliser la regex - l'autre Sanswer supposait que vous n'auriez même pas besoin de regex. La méthode "Findall" de Regex est ce que vous manquez.
motif = repile ("\ w \ w \ w (\ w +)")
Résultat = motif.Search ("Lorem Ipsum Dolor Sit Amet '). Groupes ()
code> p>
>>> myre = re.compile(r"\w{4,}", re.UNICODE)
>>> myre.findall(u'Lorem, ipsum! dolör sit? amet...')
[u'Lorem', u'ipsum', u'dol\xf6r', u'amet']
pattern = re.compile(r'(\S{4,})')
pattern.findall('Lorem ipsum dolor sit amet')
['Lorem', 'ipsum', 'dolor', 'amet']
Ne tenez pas compte de ma réponse. Les traites de Tim Pietzcker comme «Asseyez-vous?» correctement
Voulez-vous dire des lettres ASCII ou des lettres internationales comme des caractères accentués, etc. également pertinents?