正则表达式的匹配问题 表达式不对

有一段格式是这样的:log-pattern=(\S+)\s-\s-\s\[([^]]+)\s\S+]\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)\s(\S+)\s(\S+)\s(\S+)\s"([^"]+)"\s"([^"]+)"\s"([^"]+)"\s(\S+)\s"([^"]+)"\s(\S+).* log-format=ip datetime method url protocol status business_status instance_id length referer agent real_ip cost host hostname 我想把171.105.64.102 - - [12/May/2021:18:30:42 +0800] "GET /pda/workflow/public.php?P=113%3B88t64ur4rojog80ivqp9jspca0%3B6&RUN_ID=88715&FLOW_ID=33&PRCS_ID=3&FLOW_PRCS=2&OP_FLAG=1&_=1620815441318 HTTP/1.1" 200 1061 "http://oa.gmyh.com.cn/pda/workflow/handle.php?RUN_ID=88715&FLOW_ID=33&PRCS_ID=3&FLOW_PRCS=2&PRCS_KEY_ID=479601&EDIT_FLAG=1&actionType=handle&FLOW_ID_NEW=" "Mozilla/5.0 (Linux; Android 10; CLT-AL00 Build/HUAWEICLT-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36TDOA_Android"匹配上去 怎么做 本人小白

 

log-pattern = (\S+)\s-\s-\s\[([^\]]+)\s[^\]]+]\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)\s(\S+)\s"([^"]+)"\s"([^"]+)"

匹配了你提供的文本

 

我在 https://regexr.com/3au3g 测试的。

在Expression 输入:(\S+)\s-\s-\s\[([^\]]+)\s[^\]]+]\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)\s(\S+)\s"([^"]+)"\s"([^"]+)"

在 Text 输入:171.105.64.102 - - [12/May/2021:18:30:42 +0800] "GET /pda/workflow/public.php?P=113%3B88t64ur4rojog80ivqp9jspca0%3B6&RUN_ID=88715&FLOW_ID=33&PRCS_ID=3&FLOW_PRCS=2&OP_FLAG=1&_=1620815441318 HTTP/1.1" 200 1061 "http://oa.gmyh.com.cn/pda/workflow/handle.php?RUN_ID=88715&FLOW_ID=33&PRCS_ID=3&FLOW_PRCS=2&PRCS_KEY_ID=479601&EDIT_FLAG=1&actionType=handle&FLOW_ID_NEW=" "Mozilla/5.0 (Linux; Android 10; CLT-AL00 Build/HUAWEICLT-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36TDOA_Android"

你看整个 Text 框里的文本匹配成功了。你的正则表达式主要问题是字符\]需要转义。你试一下看。