-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
  • 14,608
  • 7
  • 46
  • 54
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
  • 91,013
  • 29
  • 181
  • 233
  • 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
  • 100,514
  • 17
  • 155
  • 179
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
  • 65,133
  • 10
  • 87
  • 119