-2

I was wondering if in python it would be possible to extract certain integers from a variable and save it as a seperate variable for later use.

for example:

str1 = "numberone=1,numbertwo=2,numberthree=3"

newnum1 = [find first integer from str1]

newnum2 = [find second integer from str1]

answer = newnum1 * newnum2

print(answer)
fredtantini
  • 15,966
  • 8
  • 49
  • 55
B3athunter
  • 21
  • 3

3 Answers3

1

Try findall:

num1, num2, num3 = re.findall(r'\d+', 'numberone=1,'
                                      'numbertwo=2,'
                                      'numberthree=3')

Now num1 contains the string 1, num2 contains 2, num3 contains 3.

If you want only two numbers (thanks to @dawg), you can simply use the slice operator:

num1, num2=re.findall(r'\d+', the_str)[0:2]
Maroun
  • 94,125
  • 30
  • 188
  • 241
  • 1
    Since he is only looking for two numbers, you might consider: `num1, num2=re.findall(r'\d+', the_str)[0:2]` – dawg Dec 02 '14 at 16:48
1

You have some choice for this :

using str.split() :

>>> [int(i.split('=')[1]) for i in str1.split(',')]
[1, 2, 3]

using regular expressions :

>>> map(int,re.findall(r'\d',str1))
[1, 2, 3]
Mazdak
  • 105,000
  • 18
  • 159
  • 188
0
(?<==)\d+(?=,|$)

Try this.See demo.

http://regex101.com/r/yR3mM3/19

import re
p = re.compile(ur'(?<==)\d+(?=,|$)', re.MULTILINE | re.IGNORECASE)
test_str = u"numberone=1,numbertwo=2,numberthree=3"

re.findall(p, test_str)
vks
  • 67,027
  • 10
  • 91
  • 124