2016-09-05 5 views
0

У меня есть строка, какПолучить целое число из строки в Python3

#IntegerNumber Some Text 

Я хочу, чтобы получить только IntegerNumber, как int из строки в Python3. Я попытался это, но он не работал:

search_key = str(issue_id) 
search_string = str(toggl_data['description']) 
search = re.search(search_key, search_string) 
+2

Как мы можем помочь вам с регулярным выражением, если мы не знаем, как выглядит регулярное выражение ('search_key') или как _exactly_ строка поиска для поиска (' search_string')? Укажите фактические строки, а не переменные, значения которых не могут быть известны. Кроме того, «не работает», как? Не нашел номер? Вернул неправильный тип? Исключено исключение? –

+0

Если один из этих ответов помог вам, не забудьте упрекнуть и принять. –

ответ

0

Hmmmm не знаю, как вы вызываете все эти вещи, но попробовать:

import re 
search_key = str("#([0-9]+) \S+") 
search_string = str(toggl_data['description']) 
search_result = re.search(search_key, search_string).group(1) 

и теперь Ваш вар search_result будет содержать результат

0

Вы можете попробовать следующее:

import re 
search_string = str(toggl_data['description']) 
result = int(re.search('(?<=^#)\w+', search_string).group()) 

Это будет работать с предположением, что #IntegerNumber всегда находится в начале search_string, и есть только цифры после #.

0

Возможное решение, при условии, что

  1. Целое значение всегда в начале строки
  2. Это всегда предшествует одной символ «#»
  3. Она отделена от остаток строки пробелами.

    integer_value = int(search_string.split(" ")[0][1:])

Он разбивает текст пробелами, занимает первое слово («# 45») игнорирует первый символ, и преобразует полученную строку в целое число. Полезно, если вы хотите избежать регулярных выражений по какой-то причине.