#regex #logging #proxy
#регулярное выражение #ведение журнала #прокси
Вопрос:
Я работаю над внесением некоторых журналов прокси-сервера bluecoat. Я использую именованные группы захвата в регулярном выражении для анализа полей, которые могут присутствовать или отсутствовать в журналах. Большинство полей разделены пробелом. Поле user_agent, которое не всегда присутствует в записях, заключено в кавычки (см. Выделенный жирным шрифтом текст в примере ниже). Я включил часть своего регулярного выражения, чтобы вы могли видеть шаблон, которому я следовал. Есть предложения о том, как захватить все данные, заключенные в кавычки, в одну группу, используя именованную группу захвата? ТИА, Шарон
2014-03-27 12:39:40 76 10.3.63.13 200 TCP_NC_MISS 455 1236 ПОЛУЧИТЬ http www.google-analytics.com 80 /собирать ?v=1amp;_v=j17amp;a=1102608266amp;t=pageviewamp;_s=1amp;dl=http://google.about.com/od/personalizegoogle/ss/createAlertSBS.htmamp;dr=http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&cad=rja&uact=8&sqi=2&ved=0CFMQFjAH&url=http%3A%2F%2Fgoogle.about.com%2Fod%2Fpersonalizegoogle%2Fss%2FcreateAlertSBS.htm&ei=Bxw0U6rAAq3JsQTenoG4Ag&usg=AFQjCNHx6zp6l6jvorcEaz3tC7dS_yH_0g&sig2=KSZV_0g8bK1ayjB8jVqscA&bvm=bv.63738703,d.cWcamp;ul=en-usamp;de=windows-1252amp;dt=How to Create a Google Alertamp;sd=24-bitamp;sr=1600x900amp;vp=1583x809amp;je=1amp;fl=12.0 r0amp;_u=eCC~amp;cid=434094455.1394395551amp;tid=UA-44417706-1amp;cg1=Articlesamp;cd1=googleamp;cd2=computeamp;cd3=20906amp;cd4=29amp;cd5=aj-about-premiumamp;cd6=primedia_google tt29 primedia_site_targeting test0amp;cd7=8amp;cd8=1amp;cd9=0amp;cd10=personalizegoogle/amp;cd15=amp;cm1=522amp;z= 435946251 — — — www.google-analytics.com изображение / gifhttp://google.about.com/od/personalizegoogle/ss/createAlertSBS.htm
«Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 27.0) Gecko / 20100101 Firefox / 27.НАБЛЮДАЛОСЬ «Веб-реклама / Аналитика» С 0 « — 163.252.254.201 74.125.228.197 52349
часть регулярного выражения, которую я использую для разбора этого на именованные группы захвата: (?<cs_authgroup>[^s]*)s(?<s_hierarchy>[^s]*)s(?<s_supplier_name>[^s]*)s(?<rs_Content_Type>[^s]*)s(?<cs_referer>[^s]*)s
Следующее поле в этой группе предназначено для <user_agent>
…есть идеи о том, как поместить туда выделенный жирным шрифтом образец или перейти к следующей группе захвата, если это поле равно нулю?
Ответ №1:
если вы хотите заключить все в кавычки, используйте это для начала (?<user_agent>".*?")
http://rubular.com/r/CUQ5gFi8mM и http://rubular.com/r/vulCkheohN