regex_things.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package regex_things
  2. import "regexp"
  3. const (
  4. // 匹配 ass 文件中的 Style 变量
  5. regString4Style = `(?m)^Style:\s*(\w+),`
  6. )
  7. // ReMatchBrace 匹配花括号中的内容
  8. var ReMatchBrace = regexp.MustCompile(`(?m)((?i){[^}]*})`)
  9. var ReMatchBracket = regexp.MustCompile(`(?m)((?i)\[[^]]*\])`)
  10. var ReCutDoubleLanguage = regexp.MustCompile(`(?i)(.*)\\N(.*)`)
  11. // RegMatchSpString 替换特殊字符
  12. //var RegMatchSpString = regexp.MustCompile(`(?i)[^\w\s]`)
  13. var RegMatchSpString = regexp.MustCompile(`(?m)[\p{P}|\p{Z}}}|\p{S}\s|\t|\v]`)
  14. // 字幕文件对话的每一行
  15. // regStringASS = `Dialogue: [^,.]*[0-9]*,([1-9]?[0-9]*:[0-9]*:[0-9]*.[0-9]*),([1-9]?[0-9]*:[0-9]*:[0-9]*.[0-9]*),[^,.]*,[^,.]*,[0-9]*,[0-9]*,[0-9]*,[^,.]*,(.*)`
  16. const regStringASS = `Dialogue: [^,.]*[0-9]*,([1-9]?[0-9]*:[0-9]*:[0-9]*.[0-9]*),([1-9]?[0-9]*:[0-9]*:[0-9]*.[0-9]*),([^,.]*),[^,.]*,[0-9]*,[0-9]*,[0-9]*,[^,.]*,(.*)`
  17. const regStringSRT = `(\d+)\n([\d:,]+)\s+-{2}\>\s+([\d:,]+)\n([\s\S]*?(\n{1,2}|$))`
  18. const regStringSRT2 = `(\d+)\n([\d:.]+)\s+-{2}\>\s+([\d:.]+)\n([\s\S]*?(\n{1,2}|$))`
  19. const regStringSRTime = `([\d:,]+)\s+-{2}\>\s+([\d:,]+)`
  20. const regStringSRTime2 = `([\d:.]+)\s+-{2}\>\s+([\d:.]+)`
  21. // 匹配 srt 的字幕特效,需要移除这些
  22. var ReMatchSrtSubtitleEffects = regexp.MustCompile(`(?m)([1-9]\d*\.?\d*)|(0\.\d*[1-9])`)
  23. var ReMatchDialogueASS = regexp.MustCompile(regStringASS)
  24. var ReMatchDialogueSRT = regexp.MustCompile(regStringSRT)
  25. var ReMatchDialogueSRT2 = regexp.MustCompile(regStringSRT2)
  26. var ReMatchDialogueTimeSRT = regexp.MustCompile(regStringSRTime)
  27. var ReMatchDialogueTimeSRT2 = regexp.MustCompile(regStringSRTime2)
  28. // RegOneSeasonSubFolderNameMatch 每个视频文件夹下的缓存文件夹名称,一个季度的
  29. var RegOneSeasonSubFolderNameMatch = regexp.MustCompile(`(?m)^Sub_S\dE0`)
  30. const regStringMathLogOneLine = `(?m)^(\[)(.*)(\])\: (\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}) - (.+)`
  31. const regMatchIP = `(?m)((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))).){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))`
  32. var ReMatchIP = regexp.MustCompile(regMatchIP)
  33. // 匹配目前日志记录的格式的一行
  34. var ReMathLogOneLine = regexp.MustCompile(regStringMathLogOneLine)