J'essaye de faire une simple division de regex en Python. La chaîne est sous la forme de FooX où Foo est une chaîne et X est un entier arbitraire. J'ai le sentiment que cela devrait être très simple, mais je ne peux pas vraiment le faire fonctionner. Sur cette note, quelqu'un peut-il recommander de bons matériaux de lecture Regex?Python regex split, entier de longueur arbitraire
Répondre
En supposant que vous souhaitez partager entre le « Foo » et le numéro, vous voulez quelque chose comme:
r/(?<=\D)(?=\d)/
qui correspondra à un point entre un et un chiffre non numérique, sans consommer de caractères la scission.
Bonne idée, mais ne fonctionnera pas, au moins en Python. Il ignore les points de vue dans les expressions rationnelles qui ne correspondent à aucun caractère. –
... sérieusement? Je me demande quelle est la justification de ce comportement. –
@Max S. voir mon edit ... il semble avoir une certaine viabilité en python après tout .. –
groupes Utilisation:
import re
m=re.match('^(?P<first>[A-Za-z]+)(?P<second>[0-9]+)$',"Foo9")
print m.group('first')
print m.group('second')
Utilisation de la recherche:
import re
s='Foo9'
m=re.search('(?<=\D)(?=\d)',s)
first=s[:m.start()]
second=s[m.end():]
print first, second
Vous ne pouvez pas utiliser split()
depuis que doit consommer certains caractères, mais vous pouvez utiliser la correspondance normale pour le faire.
>>> import re
>>> r = re.compile(r'(\D+)(\d+)')
>>> r.match('abc444').groups()
('abc', '444')
>>> import re
>>> s="gnibbler1234"
>>> re.findall(r'(\D+)(\d+)',s)[0]
('gnibbler', '1234')
Dans le regex, \ D signifie tout ce qui est pas un chiffre, alors \ D + correspond à une ou plusieurs choses qui ne sont pas des chiffres.
De même \ d signifie tout ce qui est un chiffre, alors \ d + correspond à un ou plusieurs chiffres
simple: Garder
>>> import re
>>> a = "Foo1String12345"
>>> re.split(r'(\d+)$', a)[0:2]
['Foo1String', '12345']
simple ... et permettant des chiffres dans la "chaîne arbitraire" :-p – MikeyB
- 1. Longueur arbitraire entier dans Ada
- 2. python, regex split et caractère spécial
- 3. URI Codeigniter longueur arbitraire
- 4. Javascript split regex question
- 5. Codage entier de longueur variable
- 6. CLIPS: Affirmer des faits de longueur arbitraire
- 7. php split chaîne utilisant regex
- 8. Regex à Split 1er Colon
- 9. Multi-split en Python
- 10. Python split valeur d'une chaîne
- 11. sorte radix sur les chaînes binaires de longueur arbitraire
- 12. python regex speed
- 13. Pourquoi `re.split()` de Python ne se divise-t-il pas sur des correspondances de longueur nulle?
- 14. Enveloppe d'entiers de taille arbitraire efficace en Python
- 15. RegEx - Java de Split fichier csv Parsing Commande
- 16. Entier tableau en Python
- 17. Split HTML après N mots en python
- 18. chaîne Split avec zsh comme en Python
- 19. au regex "mot entier" retourne exception
- 20. javascript split chaîne sur plusieurs champs en utilisant regex
- 21. Split By le plus long CORRESPONDANCE REGEX Substring
- 22. classe Python avec émulation entier
- 23. Fractionner un entier en Python?
- 24. Regex pour analyser les fonctions avec une profondeur arbitraire
- 25. Python: la longueur du délai de contrôle
- 26. Longueur des arguments de la fonction Python?
- 27. Python Développer les onglets Calcul de longueur
- 28. OpenMP split-joint model
- 29. Définition des limites de longueur d'entrée à l'aide de RegEx
- 30. python nom split nom de domaine et l'extension
Comment voulez-vous la scission d'être? Devrait-il retourner seulement Foo? seulement le nombre? tous les deux? – MAK