2013-06-18 3 views
0

Я пытаюсь сопоставить набор данных, но не тогда, когда он содержит некоторые строки в запросе:Regex для аналитики Google

Строки, которые я не хочу, чтобы являются

/hd/805 
/hd/864 
/hd/999 
/hd/???????debugUser?????? 
/hd/208?debugUser=test&MediaCode=XXXXX&CMP=XXXXX 
/hd/208?debugUser=john&MediaCode=XXXXX&CMP=XXXXX 

Но я хотите, чтобы соответствовать всем остальным

/hd/123 
/hd/654?test=test 

и т.д.

у меня есть это регулярное выражение, чтобы исключить первую часть /hd/(?!864)(?!805)(?!999)[0-9]+

Но я не могу его поймать, если строка содержит debugUser

Я попытался /hd/(?!864)(?!805)(?!999)[0-9]+\??(?!\?debugUser.*).*

Но это все еще включает в себя URL

Кто-нибудь есть идеи?

Это регулярное выражение будет использоваться с аналитикой google.

+0

Я не знаком с аналитикой google, но есть ли константа 805, 864, 999, 123 и другое число? IE Вы когда-нибудь получите 421? –

+0

Я хочу, чтобы URL-адрес совпал, если он содержит что-либо, кроме тех, у меня есть строка строк /hd/123.*, которую я хочу включить, но если она начинается с/hd/999 и т. Д., Это не так. Первая строка, которую я исключаю из сопоставления thoese, но я не могу заставить ее исключить строку, если она содержит debugUser в URL-адресе – Shikoru

ответ

0

Что вы можете сделать, это регулярное выражение: /hd/(805|864|999|208|\?\?\?\?\?\?\?debugUser\?\?\?\?\?\?) в соответствии с вашими не нужно, а если оно соответствует, просто игнорируйте его. Так что ваш код псевдо будет выглядеть -

for(String url : urls){ 
    if(regex.matches(url) continue; 
    //else do processing 
} 
0

Вы можете попробовать этот шаблон, чтобы проверить строку или строку в многострочном режиме, который содержит только URI:

^\/hd\/(?:[0-7]|8(?!05\b|64\b)|9(?!99\b))\d*(?:\?(?:[^d\s]+|d+(?!ebugUser))+)?$ 

или это, чтобы найти строку, которую вы хочу внутри большую строку:

(?<=^|["']|\s)\/hd\/(?:[0-7]|8(?!05\b|64\b)|9(?!99\b))\d*(?:\?(?:[^d\s]+|d+(?!ebugUser))+)?(?=\s|['"]|$) 

для этого, не забудьте, чтобы избежать цитат (одинарные или двойные) вы используете.

Смежные вопросы