tags:

views:

53

answers:

3

I have a line of text in the form " some spaces variable = 7 = '0x07' some more data"

I want to parse it and get the number 7 from "some variable = 7". How can this be done in python?

+2  A: 

Use a regular expression.

Essentially, you create an expression that goes something like "variable = (\d+)", do a match, and then take the first group, which will give you the string 7. You can then convert it to an int.

Read the tutorial in the link above.

Uri
+3  A: 

I would use a simpler solution, avoiding regular expressions.

Split on '=' and get the value at the position you expect

text = 'some spaces variable = 7 = ...'
if '=' in text:
    chunks = text.split('=')
    assignedval = chunks[1]#second value, 7
    print 'assigned value is', assignedval
else:
    print 'no assignment in line'
hlfrk414
While there's nothing wrong(?) with learning regex, and they can be useful, I am terribly fond of this quote: You have a matching problem, so you think "Aha! I'll use a regex!" Now you have two problems.
Wayne Werner
A: 

Basic regex code snippet to find numbers in a string.

>>> import re
>>> input = " some spaces variable = 7 = '0x07' some more data"
>>> nums = re.findall("[0-9]*", input)
>>> nums = [i for i in nums if i]  # remove empty strings
>>> nums
['7', '0', '07']

Check out the documentation and How-To on python.org.

Nick T