У меня есть строка текста в виде " some spaces variable = 7 = '0x07' some more data"

Я хочу разобрать его и получить число 7 из "some variable = 7". Как это можно сделать в Python?

0
fruit 25 Июн 2010 в 22:22

3 ответа

Лучший ответ

Я бы использовал более простое решение, избегая регулярных выражений.

Разделите на '=' и получите значение в ожидаемой позиции

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'
4
hlfrk414 25 Июн 2010 в 18:31

Основной фрагмент кода регулярного выражения для поиска чисел в строке.

>>> 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']

Ознакомьтесь с документацией и How-To на python.org.

0
Nick T 25 Июн 2010 в 18:40

Используйте регулярное выражение.

По сути, вы создаете выражение, которое выглядит примерно так: "variable = (\d+)", выполняете сопоставление, а затем берете первую группу, которая выдаст вам строку 7. Затем вы можете преобразовать его в тип int.

Прочитайте учебник по ссылке выше.

2
Uri 25 Июн 2010 в 18:26