我正在嘗試使用 AWS Logs Insights 來了解我網站的訪問者。
我的查詢如下所示:
fields @timestamp, @message
| parse @message /(?<@ip>(?<=User-Agent)(.*)(?=X-Forwarded-Proto))/
| stats count() as requestCount by @ip
| filter ispresent(@ip)
| sort requestCount desc
一些結果是這樣的:
=Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Mobile/15E148 Safari/604.1,
=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Safari/605.1.15,
我試圖在第一個括號內獲取字串:
- iPhone; CPU iPhone OS 15_1 像 Mac OS X
- 麥金塔;英特爾 Mac OS X 10_15_7
我嘗試| parse @ip /(?<@device>(/\((.*?)\)/)/ 了這個答案,但它不起作用。
有什么想法可以讓它發揮作用嗎?
謝謝!
uj5u.com熱心網友回復:
查看給定模式的結果,您可能會使用另一個命名的捕獲組(而不是環顧四周,您也可能匹配文本):
User-Agent=[^()]*\((?<@device>[^()]*)\).*X-Forwarded-Proto
查看正則運算式演示。
使用兩個捕獲組:
User-Agent(?<@ip>[^()]*\((?<@device>[^()]*)\).*X-Forwarded-Proto)
查看另一個正則運算式演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418901.html
標籤:
