假設某條日誌爲:NOTICE: 17-05-22 11:00:00 [/home/work/orp/php/phplib/saf/base/Log.php:28] logId[3599980370] refer[] cookie[] uri[/order/commit/order?mod=emsg&transid=437995094] optime[1495421999.998 ] client_ip[10.67.49.39] local_ip[10.193.69.49]php
1、目標:提取logId後面[]中的字符串分析:整條數據中有多個括號,需精確提取指定[]中的字符串html
2、方案:
代碼正則表達式
結果cookie
分析:ide
以上的正則表達式會自動匹配了logId[和最後一個]之間的字符串,包括了多個[],與咱們的預期(提取logId[....]之間的字符串日誌
代碼code
結果htm
分析:blog
已經基本提取到logId這個字符串,可是咱們直接想要[]中的字符串ip
代碼
結果:
分析:
如今就能夠成功提取了,下面分析一下該正則表達式
// logId : 首先匹配字符串logId // \[ : 再匹配一個[ ,由於 [ 屬於特殊字符,因此需加一個轉義符 \[ // () : 括號()表明指定須要單獨提取出來的內容 // [^\]]* : 表明匹配包括非]在內的全部字符任意個 // \] : 表明可以匹配一個]