2017-08-25 115 views
0

我需要在Google Analytics(分析)中的網址中提取具有特定數字和字符串的鏈接,因此我設置了一個過濾器。正則表達式來匹配一個url內的字符串

這是我輸入網址:http://website.com/content/123/12/1234?utm_source=ABC&utm_campaign=ThisIsWhatINeed

在這個環節,我需要的正則表達式匹配/內容/ 123/12/1234(或XXX/XX/XXXX格式的任何數字),並匹配確切的字符串ThisIsWININeed

我有正則表達式\/content\/\d+\/\d+\/\d+匹配數字部分/content/123/12/1234,並且這工作正常。但我不知道如何也匹配ThisIsWhatINeed。我試過\/content\/\d+\/\d+\/\d+ThisIsWhatINeed,但一些關鍵部分不見了。

我一直在使用正則表達式測試程序,它說所有匹配,但最後我得到消息'全局模式標誌g修飾符:全球。所有比賽(第一場比賽後不返回)'

我會承認我對於正則表達式很陌生,我只是在學習所有的令牌。

PS - 我知道我可以在GA等手段拉出來活動 - 我有需要建立這種過濾器

+0

不要盲目測試正則表達式測試站點。在GA(RE2)正則表達式中,你不需要轉義'/',例如你也可能只需要捕獲組。試試['(/content/[0-9]+/[0-9]+/[0-9]+).*utm_campaign=([ ^&]*)'](https://regex101.com/ r/Pcm0jy/2)。 –

回答

-1

如果你想整個字符串匹配特定的原因:

要匹配/123/12/1234部分可以使用字符類。 要匹配更通用的鏈接,您可以將http://website.com/僅更換爲.*? 要在廣告系列屬性後匹配您的字符串,您可以使用否定字符類,在字符類中標記爲bei ^。這意味着,模式可以匹配每個字符,只要它不是&符號。

http://website.com/content/[\d/]+.*?utm_campaign=[^&]*? 

爲了解釋全局修改: 通常你嘗試匹配正則表達式的東西會返回在第一場比賽。因此,如果您嘗試匹配多個鏈接,則第一場比賽會返回並停止您的請求。 設置全局標誌時,模式將盡可能頻繁匹配,並在沒有匹配時返回。

希望這會有所幫助!

+0

謝謝,我感謝你的答案,你們都對一個無知的新手很友善! 這兩個響應都給出。* utm_campaign =([^&] *以匹配鏈接的廣告系列部分,但這是我需要匹配的特定廣告系列,而不是與廣告系列代碼的任何鏈接。 我已編輯它到(\/content \/\ d + \/\ d + \/\ d +。* bananas),這似乎是在正則表達式測試程序中工作,但不在GA中。GA不會接受其他任何東西,或者當我試圖拿逃脫出來(我可能剛剛刪除他們不正確)。 – Derah