2015-10-15 82 views
0

我正在尋找從日誌中捕獲谷歌搜索條件。我有不同的用戶使用不同的瀏覽器創建不同的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

可以使用負字符組([^&]+)匹配q=和下&之間的一切。使問題變得複雜的是,在等號之前可以有可選的\q\=a+search+term

試試這個

q(?:\\)?=([^&]+) 

Regex101