从某字段开始到某字段结束
(?<=exp).*(?=exp) 例如:
(?<=(-))\d{2}(?=(:)) 获取年月日时分秒中的小时 (时间eg:2021/12/30-17:47:15:877)
(?<=requestId=).*(?=(HTTP))
(?<=\[).*(?= \+0800)
(?<=("key":")).*?(?=("|\d{16}|\?))
(?<=action_name=)(.*?)(?=;file_name|;content|;parent_info)
(?<=AfterTransPort=).*(?=( Content))
(?<=(TID:)).*?(?=( ))
(?<=("timeStamp":")).*?(?=("))
表达式含义:
(?=exp) :定义目标字符串结束位置要求,即紧随目标字符串后面出现的字符串需要匹配上exp表达式,该字符串不会被计入目标字符串,表达中出现的括号也不会被视作一个分组;
(?<=exp):定义目标字符串起始位置要求,即紧邻目标字符串前面出现的字符串需要匹配上exp表达式,该字符串不会被计入目标字符串,表达中出现的括号也不会被视作一个分组;
(?!exp):定义目标字符串结束位置要求,即紧随目标字符串后面出现的字符串不能匹配上exp表达式,该字符串不会被计入目标字符串,表达中出现的括号也不会被视作一个分组;效果上与(?=exp)
表示的情况刚好相反;
(?<!exp):定义目标字符串起始位置要求,即紧邻目标字符串前面出现的字符串不能匹配上exp表达式,该字符串不会被计入目标字符串,表达中出现的括号也不会被视作一个分组;效果上与(?<=exp)表示的情况刚好相反;
JSON解析
{.*}
IP地址
.\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
信息类别
(ERROR|WARN|INFO)
时间
yyyy-MM-ddTHH:mm:ss \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}
yyyy/MM/ddTHH:mm:ssZ \d{4}/\d{2}/\d{2}T\d{2}:\d{2}:\d{2}Z
yyyy-MM-ddTHH:mm:ss:SSSZ \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}:\d{3}Z
yyyy-MM-ddTHH:mm:ss:SSSX:00 \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}:\d{3}X:00
yyyy/MM/dd HH:mm:ss \d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}
yyyy/MM/dd-HH:mm:ss \d{4}/\d{2}/\d{2}-\d{2}:\d{2}:\d{2}
yyyy/MM/dd-HH:mm:ss:SSS \d{4}/\d{2}/\d{2}-\d{2}:\d{2}:\d{2}:\d{3}
dd-MM-yyyy HH:mm:ss \d{2}-\d{2}-\d{4} \d{2}:\d{2}:\d{2}
dd/MM/yyyy:HH:mm:ss \d{2}/\d{2}/\d{4}:\d{2}:\d{2}:\d{2}
yyyyMMdd-HH:mm:ss:SSS \d{8}-\d{2}:\d{2}:\d{2}:\d{3} yyyy-MM-dd
HH:mm \d{4}-\d{2}-\d{2} \d{2}:\d{2} yyyy-MM-dd
HH:mm:ss \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} yyyy-MM-dd
HH:mm:ss:SSS \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}:\d{3} yyyy-MM-dd
HH:mm:ss.SSS \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3} yyyy年MM月dd日
HH:mm:ss \d{4}年\d{2}月\d{2}日 \d{2}:\d{2}:\d{2}