title.tin 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #nop 开启 PCRE UTF 字符类支持。;
  2. #config {PCRE UTF} ON;
  3. #nop 【一代神相】江湖十大气血高手 牛肉面馆 总管事「绝对不是」天天练功 🐒 ☯️ (Marking);
  4. #nop 【 西 毒 】桃林书院 生员「喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵喵」挖煤猫 🐎 ⭕️ (Zardc);
  5. #nop 朱雀 辽东大侠 胡一刀(Hu yidao) [任务发放] ◆◆ <衣钵相承>;
  6. #nop 丐帮第八代帮主 萧峰(Xiao feng) [任务发放] ◆;
  7. #nop 大善人 韩员外(Han yuanwai) [任务发放];
  8. #function {ParseTitle} {
  9. #local obj {%0};
  10. #nop 小技巧:replace 匹配之前不会将 &1~&99 清空,因此匹配可选项时会保留上一次的值。;
  11. #nop 所以这里手动清空一下;
  12. #local tmp {};
  13. #replace {tmp} {%s%s%s%s%s%s%s%s%s%s} {};
  14. #replace {obj} {^{?:(?:【(.+?)】)?(.*?)(?:「(.+?)」)?(\p{Han}+)( (?:\p{So}\S* )+)?\(([A-Z][a-z']+(?: [a-z]+)*)\)(?: <(.*?)>)?(?: \[(.*?)\])?(?: ((?:◆)+))?(?: <(衣钵相承)>)?}$} {
  15. {rank} {@trim{&1}}
  16. {title} {@trim{&2}}
  17. {nick} {@trim{&3}}
  18. {name} {&4}
  19. {emoji} {@trim{&5}}
  20. {id} {@toLower{&6}}
  21. {status1} {&7}
  22. {status2} {&8}
  23. {isJobNPC} {&9}
  24. {yibo} {&10}
  25. };
  26. #nop 注意 #replace 刚替换完时,得到的是字符串,最后还要再进行一次赋值,才能够将它结构化;
  27. #local obj {$obj};
  28. #if { "$obj[name]" == "" } {
  29. #return {};
  30. };
  31. #if { "$obj[title]" == "☆%S%s%S☆" } {
  32. #local partyInfo {$obj[title]};
  33. #replace partyInfo {^☆%S%s%S☆$} {{party}{&1}{partyRank}{&3}};
  34. #local partyInfo {$partyInfo};
  35. #local obj[title] {$partyInfo[party];$partyInfo[partyRank]};
  36. #local obj[party] {$partyInfo[party]};
  37. #local obj[partyRank] {$partyInfo[partyRank]};
  38. };
  39. #replace obj[title] {%+1..s} {;};
  40. #replace obj[emoji] {%+1..s} {;};
  41. #replace obj[rank] {%+1..s} {};
  42. #local field {};
  43. #foreach {rank;title;nick;name;emoji;id;status1;status2;isJobNPC;yibo} {field} {
  44. #if { "$obj[$field]" == "" } {
  45. #unlocal obj[$field];
  46. };
  47. };
  48. #return {$obj};
  49. };