boompack commited on
Commit
44e06ad
·
verified ·
1 Parent(s): 674e2be

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -21
app.py CHANGED
@@ -7,35 +7,33 @@ def process_text(input_text, comment_count):
7
  print(f"Входные данные: {input_text}")
8
  print(f"Ожидаемое количество комментариев: {comment_count}")
9
 
10
- # Регулярное выражение для извлечения данных
11
- pattern = r"([a-zA-Z0-9_@]+(?:[a-zA-Z0-9_]+)?)\s*(.*?)\s*(?:Нравится:\s*(\d+))"
12
-
13
- # Проверка пустого ввода
14
- if not input_text.strip():
15
- return "Пожалуйста, введите текст."
16
-
17
- # Поиск всех совпадений в тексте
18
- matches = re.findall(pattern, input_text)
 
 
 
 
 
19
 
20
- # Печать найденных совпадений для отладки
21
- print(f"Найденные совпадения: {matches}")
22
-
23
- # Проверка наличия совпадений
24
- if not matches:
25
- return "Совпадения не найдены. Пожалуйста, проверьте ввод."
26
-
27
  # Проверка количества комментариев
28
- actual_comment_count = len(matches)
29
  if actual_comment_count != int(comment_count):
30
  return (f"Предупреждение: найдено {actual_comment_count} комментариев, "
31
  f"хотя указано {comment_count}.\n"
32
  "Пожалуйста, проверьте ввод.")
33
-
34
  # Формируем вывод
35
  output = []
36
- for i, match in enumerate(matches, 1):
37
- username, text, likes = match
38
- output.append(f'{i}. Пользователь: "{username}", Текст: "{text.strip()}", Лайков: {likes or 0}')
39
 
40
  return "\n".join(output)
41
 
 
7
  print(f"Входные данные: {input_text}")
8
  print(f"Ожидаемое количество комментариев: {comment_count}")
9
 
10
+ # Шаблон для разделения комментариев по ключевым словам
11
+ comment_blocks = re.split(r'Ответить|Действия с комментарием|Скрыть ответы|Показать перевод', input_text)
12
+
13
+ # Паттерн для извлечения данных из каждого блока
14
+ pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\sНравится:\s*(\d+))?\s*$"
15
+
16
+ results = []
17
+ for block in comment_blocks:
18
+ match = re.search(pattern, block.strip())
19
+ if match:
20
+ username = match.group(1)
21
+ text = match.group(2).strip()
22
+ likes = int(match.group(3)) if match.group(3) else 0
23
+ results.append({"Пользователь": username, "Текст": text, "Лайков": likes})
24
 
 
 
 
 
 
 
 
25
  # Проверка количества комментариев
26
+ actual_comment_count = len(results)
27
  if actual_comment_count != int(comment_count):
28
  return (f"Предупреждение: найдено {actual_comment_count} комментариев, "
29
  f"хотя указано {comment_count}.\n"
30
  "Пожалуйста, проверьте ввод.")
31
+
32
  # Формируем вывод
33
  output = []
34
+ for i, result in enumerate(results, 1):
35
+ username, text, likes = result['Пользователь'], result['Текст'], result['Лайков']
36
+ output.append(f'{i}. Пользователь: "{username}", Текст: "{text}", Лайков: {likes}')
37
 
38
  return "\n".join(output)
39