Мне дали несколько строк для работы. Каждая из них представляет собой набор данных и состоит из имени набора данных и связанной статистики. Они все они имеют следующий вид:
s= "| 'TOMATOES_PICKED' | 914 | 1397 |"
Я пытаюсь реализовать функцию, которая будет анализировать строку и возвращать имя набора данных, первое число и второе число. Таких строк много, и каждая из них другое имя и связанная статистика, поэтому я решил, что лучший способ сделать это - использовать регулярные выражения. Вот что у меня есть:
def extract_data2(s):
import re
name=re.search('\'(.*?)\'',s).group(1)
n1=re.search('\|(.*)\|',s)
return(name,n1,)
Итак, я немного почитал по регулярным выражениям и выяснил, как вернуть имя. Для каждой из строк, с которыми я работаю, имя набора данных ограничено "", поэтому я нашел имя. Эта часть работает нормально. Моя проблема в получении чисел. Сейчас я думаю о том, чтобы попытаться сопоставить шаблон, которому предшествует вертикальная черта ('|'), затем что-нибудь (вот почему я использовал. *), А затем еще одну вертикальную черту, чтобы попытаться получить первый номер. Кто-нибудь знает, как я могу это сделать в Python? То, что я пробовал в приведенном выше коде для первого числа, возвращает в основном всю строку в качестве вывода, тогда как я хочу получить только число. -Я очень новичок в программировании, поэтому прошу прощения, если этот вопрос кажется рудиментарным, но я безуспешно читал и искал ответы, близкие к моему случаю. Я ценю любую помощь. Идея состоит в том, что он сможет:
return(name,n1,n2)
, чтобы, когда пользователь вводит строку, он мог просто проанализировать строку и вернуть важную информацию. В своих попытках получить числа я заметил, что он возвращает число в виде строки. Есть ли способ вернуть n1 или n2 как просто число? Обратите внимание, что для некоторых строк n1 и n2 могут быть целыми или десятичными.