Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import re
  2. def callback__(progress, msg, func):
  3. if not func :return
  4. func(progress, msg)
  5. BULLET_PATTERN = [[
  6. r"第[零一二三四五六七八九十百]+编",
  7. r"第[零一二三四五六七八九十百]+章",
  8. r"第[零一二三四五六七八九十百]+节",
  9. r"第[零一二三四五六七八九十百]+条",
  10. r"[\((][零一二三四五六七八九十百]+[\))]",
  11. ], [
  12. r"[0-9]{,3}[\. 、]",
  13. r"[0-9]{,2}\.[0-9]{,2}",
  14. r"[0-9]{,2}\.[0-9]{,2}\.[0-9]{,2}",
  15. r"[0-9]{,2}\.[0-9]{,2}\.[0-9]{,2}\.[0-9]{,2}",
  16. ], [
  17. r"[零一二三四五六七八九十百]+[ 、]",
  18. r"[\((][零一二三四五六七八九十百]+[\))]",
  19. r"[\((][0-9]{,2}[\))]",
  20. ] ,[
  21. r"PART (ONE|TWO|THREE|FOUR|FIVE|SIX|SEVEN|EIGHT|NINE|TEN)",
  22. r"Chapter (I+V?|VI*|XI|IX|X)",
  23. r"Section [0-9]+",
  24. r"Article [0-9]+"
  25. ]
  26. ]
  27. def bullets_category(sections):
  28. global BULLET_PATTERN
  29. hits = [0] * len(BULLET_PATTERN)
  30. for i, pro in enumerate(BULLET_PATTERN):
  31. for sec in sections:
  32. for p in pro:
  33. if re.match(p, sec):
  34. hits[i] += 1
  35. break
  36. maxium = 0
  37. res = -1
  38. for i,h in enumerate(hits):
  39. if h <= maxium:continue
  40. res = i
  41. maxium = h
  42. return res