直到最后我都无法赢得常规赛。您需要从字符串中选择组:日期时间、方括号内的文本以及子字符串中的路径(不包括文件名)。
示例行:
2023-10-26 03:06:55,136 WARN [TSSS_NSSS-SIB] done ip 10.33.22.22 f '/mnt/data/DD/DD/A/sds/tdf/DDdf-fdfd-dfdf_dfdf_3433343.txt' t '/DDdf-fdfd-dfdf_dfdf_3433343.txt' sz 3507
以下是常规时间表:(.*)(\sWARN\s{2}\[)(.*)(\]\s)(done[^\']+\')
不可能说我们需要进一步选择路径子字符串中从第一次出现的“/”到最后一次出现的“/”的所有内容。因此,您需要从这一行中分组选择:
2023-10-26 03:06:55
TSSS_NSSS-SIB
/mnt/data/DD/DD/A/sds/tdf/
根据任务,我删除了一堆不必要的组等等。这里:
更新:针对 Rust 进行了更新
https://regex101.com/r/57lg9l/2
更新2:如果有必要,仅在警告并完成时:
UPDATED3:没有捕获文件名:
https://regex101.com/r/57lg9l/3