isextract.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // isextract.go
  2. //标题、全文正则匹配,判断是否继续抽取
  3. package extract
  4. import (
  5. qu "qfw/util"
  6. "regexp"
  7. )
  8. var N_extractMap map[string][]string
  9. var N_extract map[string][]*regexp.Regexp
  10. func init() {
  11. qu.ReadConfig("./res/isextract.json", &N_extractMap)
  12. N_extract = map[string][]*regexp.Regexp{}
  13. for key, regs := range N_extractMap {
  14. for _, v := range regs {
  15. tmp, _ := regexp.Compile(v)
  16. N_extract[key] = append(N_extract[key], tmp)
  17. }
  18. }
  19. }
  20. func IsExtract(filed, title, content string) bool {
  21. defer qu.Catch()
  22. b := true
  23. if N_extract[filed] != nil {
  24. nregs := N_extract[filed]
  25. for _, v := range nregs { //标题
  26. rep := v.FindAllStringIndex(title, -1)
  27. if len(rep) > 0 {
  28. b = false
  29. break
  30. }
  31. }
  32. /*
  33. if b {
  34. for _, v := range N_extract["filter"] {
  35. content = v.ReplaceAllString(content, "")
  36. }
  37. for _, v := range nregs { //正文
  38. rep := v.FindAllStringIndex(content, -1)
  39. if len(rep) > 0 {
  40. b = false
  41. break
  42. }
  43. }
  44. }
  45. */
  46. }
  47. return b
  48. }