2012-07-03 2 views
1

Я создаю несколько отчетов в Google Analytics. Я пытаюсь написать регулярное выражение, которое будет соответствоватьRegEx: группа, соответствующая любой строке, начинающейся с определенного символа

www.website.com/

www.website.com/?_string_begins_with_question_mark

Но будет не матч

www.website .com/string_doesnt_begin_with_question_mark

Использование Reggy (с POSIX Extended), я попытался создать необязательную группу, которая будет соответствовать строке, начинающейся с знак вопроса, за которым следует любое количество символов. Я думал

(\?. +)?

сделал бы трюк, но он игнорирует требование вопросительного знака и соответствует любой строке.

Я попробовал несколько вариантов:

www.website.com/(\?(.+))?

www.website.com/(\? .+)?

www.website.com/(?.+)?

Et cetera.

Любая помощь приветствуется - Извините, если это уже было задано! Я новичок в RegEx.

Спасибо!

ответ

0

Ваше регулярное выражение

www.website.com/(\?.+)? 

будет по-прежнему соответствовать что-нибудь, что не содержит www.website.com/, независимо от того, что происходит после косой черты. Вы пытались добавить $ (маркер конца ввода)?

www\.website\.com/(?:\?.+)?$ 

(Побег точки для большей точности, а ?: просто способ указания, что группа не имеет особого значения и не должны помнить - если опустить это, вы можете получить доступ к содержимому группы по \1, например, в операции замены.)

+0

Спасибо. Я бы заметил, что это работает, но я использовал многострочную функцию Реджи. Как босс. –

0

Я хотел бы предложить

www.website.com/($|\?.+$) 

Либо пустой, либо вопросительный знак плюс некоторая строка