Невозможно найти и скомпилировать код регулярного выражения из каждой строки в Python - PullRequest
1 голос
/ 09 апреля 2019

Я пытаюсь написать программу, соответствующую регулярному выражению в файле.Начальные строки моего файла выглядят так, как показано ниже

Alternate Take with Liz Copeland (Day 1) (12am-1am)                    
    Saturday  March 31, 2007                    
        No.    Artist    Song    Album (Label)    Comment
    buy    1    Tones on Tail    Go! (club mix)    Everything! (Beggars Banquet)    
    buy    2    Devo    (I Can't Get No) Satisfaction    Anthology: Pioneers Who Got Scalped (Warner Archives/Rhino) 

Мой код для соответствия первой строке файла выглядит следующим образом

with open("data.csv") as my_file:
  for line in my_file:
      re_show = re.compile(r'(Alternate Take with Liz Copeland) \((.*?)\)\s\((.*?)\)')
      num_showtitle_lines_matched = 0
      m_show = re.match(re_show, line)
      bool(m_show) == 1
      if m_show:
         num_showtitle_lines_matched += 1

         show_title =  m_show.group()

print("Num show lines matched --> {}".format(num_showtitle_lines_matched))
print(show_title)

Это должно дать мне результат, как показано ниже

Alternate Take with Liz Copeland (Day 1) (12am-1am)
num_showtitle_lines_matched -->1

Но мой результат не показывает никакого вывода.Пожалуйста, дайте мне знать, как этого добиться. Заранее спасибо.

1 Ответ

1 голос
/ 09 апреля 2019

Как в комментарии: просто поместите num_showtitle_lines_matched = 0 над циклом:

with open("data.csv") as my_file:
  num_showtitle_lines_matched = 0
  for line in my_file:
      re_show = re.compile(r'(Alternate Take with Liz Copeland) \((.*?)\)\s\((.*?)\)')      
      m_show = re.match(re_show, line)     
      bool(m_show) == 1
      if m_show:
         num_showtitle_lines_matched += 1
         show_title =  m_show.group()
print("Num show lines matched --> {}".format(num_showtitle_lines_matched))
print(show_title)

Выход:

Num show lines matched --> 1
Alternate Take with Liz Copeland (Day 1) (12am-1am)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...