BlackBerry 6 Regex - PullRequest
       2

BlackBerry 6 Regex

0 голосов
/ 15 июля 2011

У меня есть регулярное выражение для BlackBerry 6

Mozilla / 5.0 (BlackBerry; U; BlackBerry (? 'Имя_устройства' \ w +); en-US) AppleWebKit / 534.11 + (KHTML, как Gecko) Версия /(? 'version' (? 'major' \ d +) (. (? 'minor' \ d +)?) \ w *) Mobile Safari / 534.11 +

Но, похоже, эта строка не соответствует:

Mozilla / 5.0 (BlackBerry; U; BlackBerry AAAA; ru-ru) AppleWebKit / 534.11 + (KHTML, как Gecko) Версия / XXXX Mobile Safari / 534.11 +

Что не так?Это находится в файлах определения браузера для .NET 4.0

ПРИМЕЧАНИЕ. По какой-то причине редактор не отображает мои экранированные символы.все / сбежали.

1 Ответ

0 голосов
/ 15 июля 2011

Если ваша входная строка на самом деле содержит числовую версию, например 6.5.4.3 вместо X.X.X.X, следующее регулярное выражение будет соответствовать:

@"Mozilla\/5.0 \(BlackBerry; U; BlackBerry (?'deviceName'\w+); en-US\) AppleWebKit\/534\.11\+ \(KHTML, like Gecko\) Version\/(?'version'(?'major'\d+)(.(?'minor'\d+)?)[\.\w]*) Mobile Safari\/534\.11\+"

Помимо необходимости экранировать все символы /().+, ваше регулярное выражение не соответствует двум последним элементам номера версии; поскольку класс символов \w не использует символы периода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...