Expression régulière pour les nombres entiers et les nombres entiers?

Je suis en train d'essayer de détecter tous les nombres entiers et les nombres entiers (parmi beaucoup d'autres choses) à partir d'une chaîne. Voici les expressions régulières, je suis actuellement en utilisant:

Nombres entiers: r"[0-9]+"

Entiers: r"[+,-]?[0-9]+"

Voici les questions:

  1. Les nombres entiers regex est de détecter les nombres négatifs ainsi, je ne peux pas. Comment puis-je résoudre ce problème? Si j'utilise un espace avant au début de la regex je ne reçois que des nombres positifs, mais puis-je obtenir un espace au début de ma sortie!
  2. Pour les nombres entiers, je tiens à détecter des nombres positifs avec le format +[0-9] mais les stocker sans le signe.
  3. Pour les entiers, je voudrais stocker n'importe quel entier positif détecté par le signe, indépendamment de si elle est présente dans la chaîne d'origine.

Presque fini maintenant:
Une dernière chose, j'ai une chaîne qui dit "Ajoutez 10 et 15". Je veux stocker les entiers dans une liste. Je le fais à l'aide de la findall(). Tout en stockant le nombre est-il possible de stocker '10' '+10'

Ne sont pas des "nombres entiers" et "nombres entiers positifs sont la même chose? Je ne suis pas à comprendre comment vous permettrait de distinguer entre eux.
Les nombres entiers et les nombres entiers sont la même chose. Les entiers positifs sont des nombres naturels.
Que voulez-vous correspondre à la chaîne "1.0 and 1e7"? Les deux sont des nombres (mais considéré comme floats par Python).
Oh, à droite. Mais cela ne semble pas correspondre à l'OP d'utilisation (comme dans la question n ° 2)
Votre troisième souhait est impossible à réaliser avec la regex seul. Regexes ne peut comparer le texte qui est déjà présent dans la chaîne.

OriginalL'auteur Sahil Thapar | 2013-05-27