我希望从日志中捕获Google搜索字词。我有不同的用户使用不同的浏览器创建我想要提取的不同的URL。以下是两个有效负载示例。我的想法是在URL字符串中的=
和&
之间获取。
我想抓拍:Please let this work
(?==).*?(?=&)
- &
后的work
与第一个=
q\\=(.+?)&
仅适用于第一个示例,而错过了第二个示例。有关如何实现这一目标的任何想法?或者我可能做错了什么?
示例一:
<159>Oct 15 11:00:30 10.100.67.245 LEEF:1.0|Websense|Security|7.8.3|transaction:permitted|sev=1 cat=76 usrName=LDAP://10.10.66.137 OU=test,OU=fake,OU=fake,DC=Main,DC=com/Jane Doe src=10.10.3.50 srcPort=56725 srcBytes=687 dstBytes=68244 dst=173.194.121.51 dstPort=443 proxyStatus-code=200 serverStatus-code=200 duration=0 method=GET disposition=1026 contentType=text/html; charset\=UTF-8 reason=- policy=Super Administrator**Travel role=8 userAgent=Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko url=https://www.google.com/search?q\=Please+Let+this+work&sourceid\=ie7&rls\=com.microsoft:en-US:IE-Address&ie\=&oe\=&rlz\=&safe\=active&gws_rd\=ssl
示例二:
<159>Oct 15 11:00:30 10.100.66.245 LEEF:1.0|Websense|Security|7.8.3|transaction:permitted|sev=1 cat=76 usrName=LDAP://10.10.67.137 OU=test,OU=fake,OU=ccgh,DC=fake,DC=com/Jane Doe src=10.10.3.50 srcPort=56725 srcBytes=687 dstBytes=68244 dst=173.194.121.51 dstPort=443 proxyStatus-code=200 serverStatus-code=200 duration=0 method=GET disposition=1026 contentType=text/html; charset\=UTF-8 reason=- policy=Super Administrator**Travel role=8 userAgent=Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko url=https://www.google.com/?gws_rd=ssl#q=Please+let+this+work&safe=active
答案 0 :(得分:0)
您可以使用否定字符组([^&]+)
来匹配q=
和下一个&
之间的所有内容。使问题复杂化的是,在等号前可以选择\
:q\=a+search+term
。
试试这个
q(?:\\)?=([^&]+)