2015-03-19 2 views
0

Я работаю над фильтром, основанным на версии браузера, и у меня небольшие проблемы. Это должно быть в RegEx, который любит охватить все возможное.End RegEx после определенной цифры

Я хочу, чтобы выбрать:
12,0
8,0
18.0.1025.168

Проблема, которую я имею (если смотреть на 12.0 конкретно, однако это является проблемой для всех 3) является то, что она выбирает вещи кроме 12.0. Я пытаюсь использовать спрятанные наборы и группы, не связанные с захватом, но он просто не работает.

В настоящее время у меня есть: (? (: 18.0.1025.168 [^.] | (12,0) [^.] | (: 8.0) [^.])?)

Я использовал \ д в но, похоже, мне нужно выбрать \ d или. потому что он не допускает специальных символов внутри набора.

То, что мне нужно, чтобы убедиться, что не выбраны, включают любое изменение следующих, (может быть любое число 9-в)
9.12.0
912,0
92,09
12.0.9

Любой что я должен изучить или использовать другой символ, который я мог бы использовать. Кроме того, в случае необходимости, я могу разбить это в 3-х различных формул, которые будут все огонь, однако хотели бы избежать этого можно

+0

Можете ли вы предоставить код, вход (ы), и фактический против ожидалось выход (ы)? –

+0

Это только для фильтра Google Analytics, мы пытаемся исключить эти версии браузера, но не смогли выбрать их, не выбрав другие версии браузера. Формат для RegEx в GA довольно прост, так как он выполняет каждый сеанс с помощью требований, чтобы определить, следует ли его исключить или нет. – Ryan

ответ

0

насчет (\A|^)(12.0|8.0|18.0.1025.168)($|\z)

+0

MBaas, это, похоже, работает отлично! Спасибо!! Я попытался использовать символы^и $, прежде чем возникли проблемы. Вы знаете, почему именно это работает с (\ A | ^) и ($ | \ z)? – Ryan

+0

В моих тестах это не удалось с^$, потому что это только начало/конец строки, поэтому я добавил начало/конец строки для обработки этих случаев тоже :) – MBaas

+0

Удивительно, еще раз спасибо за вашу помощь! что вы используете для тестирования вашего RegEx? Я использовал http://www.regexr.com/, но не распознал \ A или \ z и просто использовал их как экранированные символы. – Ryan

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