diff options
Diffstat (limited to 'test/example_rule.json')
| -rw-r--r-- | test/example_rule.json | 58 |
1 files changed, 46 insertions, 12 deletions
diff --git a/test/example_rule.json b/test/example_rule.json index d385f38..0cb5b6c 100644 --- a/test/example_rule.json +++ b/test/example_rule.json @@ -1,32 +1,66 @@ [
{
- "pattern": "^(\\S+)\\((\\d+)\\)\\s+(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})",
+ // 匹配日志元数据,提取 id、QQ 账号和时间。例如:墨勒托.DW(1571806261) 2025-01-27 19:58:15
"type": "metadata",
- "description": "匹配日志元数据,提取 id、QQ 账号和时间。例如:墨勒托.DW(1571806261) 2025-01-27 19:58:15"
+ "patterns": [
+ "^(\\S+)\\((\\d+)\\)\\s+(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})"
+ ],
+ "groups": [
+ "user_name",
+ "user_id",
+ "time"
+ ]
},
{
- "pattern": "^#(.+)",
"type": "action",
- "description": "匹配行动,以 # 开头。例如:# 我推开门"
+ "patterns": [
+ "^#s*((?:(?![“”\"(【】]).)+)"
+ ], // 排除后续特殊符号
+ "groups": [
+ "action_content"
+ ]
},
{
- "pattern": "“(.+)”",
"type": "speech",
- "description": "匹配玩家发言,双引号内的内容。例如:\"你好,我是冒险者\""
+ "patterns": [
+ "[“](.+?)[”]", // 中文引号
+ "\"(.*?)\"", // 英文引号
+ "”(.+?)“" // 混合引号
+ ],
+ "groups": [
+ "speech_content"
+ ]
},
{
- "pattern": "\\((.+)\\)",
"type": "ooc_speech",
- "description": "匹配场外发言,括号内的内容。例如:(今天没时间跑团)"
+ "patterns": [
+ // "((.*?))", // 英文括号
+ "((.*?))", // 中文括号
+ // "((.*)", // 未闭合英文括号
+ "((.*)" // 未闭合中文括号
+ ],
+ "groups": [
+ "ooc_content"
+ ]
},
{
- "pattern": "^(?:[\\.。]([^.。].+))",
+ // 匹配掷骰指令,以 . 或 。开头但是不匹配连续的指令前缀。例如:匹配".ra智力",不匹配"。。。"
"type": "dice_order",
- "description": "匹配掷骰指令,以 . 或 。 开头但是不匹配连续的指令前缀。例如:匹配.ra智力,不匹配'。。。'"
+ "patterns": [
+ "^(?:[\\.。]([^.。].+))"
+ ],
+ "groups": [
+ "dice_command"
+ ]
},
{
- "pattern": "【(.+)】",
+ // 匹配角色心理活动。例如:【这里好可怕】
"type": "thought",
- "description": "匹配角色心理活动。例如:【这里好可怕】"
+ "patterns": [
+ "【(.+)】"
+ ],
+ "groups": [
+ "thought_content"
+ ]
}
]
\ No newline at end of file |
