Показать полную графическую версию : [решено] regEXP | Вопрос по написанию.
День добрый, нужна помощь по сабжу.
79\\d\{8\}[0-5] как я понимаю, означает следующее 79.00000000-79.55555555 где "." любая цифра, в данном случае как я понимаю охвачено 60% диапазона по номерной емкости, как можно было бы написать регулярку, чтобы охват по диапазону был всего 15%?
79\\d\{8\}[0-2] - как пример 30% охвата диапазона, но знаний для написания регулярки посложнее не хватает, может ли кто подсказать, как корректнее было бы написать выражение.
З.ы. Буду благодарен за линку на хорошее описание по регуляркам).
Спасибо.
означает это совсем другое (если это традиционное регулярное выражение):
79\d{8}цифра_от_нуля_до_пяти
\ - экранирует следующий за ним спецсимвол, т.е.
\\ означает символ \
\{ означает символ {
\} означает символ }
реализации могут различаться в деталях. Вот у multi-edit совсем не такие выражения как у pcre например. Уточни, где будешь использовать. А ещё regex работает с текстом. Нельзя отсеять например, диапазон чисел. Только можно перечислить, как он пишется. 79, точка и 8 чисел от 0 до 2 запишется как 79\.[0-2]{8}
Можно почитать msdn на тему regular expression syntax или доку к pcre (http://www.pcre.org/pcre.txt, примерно с середины)
79, точка и 8 чисел от 0 до 2 запишется как 79\.[0-2]{8} »
Я ж вам не про это пишу, я на шаблоне понимание регулярки отобразил, как видимо ошибочно.
По сабжу, пока ничего не придумал.
79\d{8}цифра_от_нуля_до_пяти
По факту примерно такое выражение и написано, но ввиду особенности используемого ПО, приходится спец символы экранировать.
в данном случае как я понимаю охвачено 60% диапазона по номерной емкости, как можно было бы написать регулярку, чтобы охват по диапазону был всего 15%? »что есть "номерная ёмкость"?.. числовая ёмкость такого выражения (6/10)^8 ~ 1,68%
тогда так:
не заданы ограничения на номера, поэтому в старших разрядах укажем число 0-14, в младших - любые числа (не экранирую)
79(0\d{7})|(1[0-4]\d{6})
получится ровно 15%
Собственно под номерной емкостью понимался диапазон DEF номеров Российских операторов, пример [code]79160000000-79169999999[code] почему ограничение в емкости 11 цифр.
p.s. для заметки)
при звонке с домашнего 7 у нас заменяется на 8.
pingUIN, ничего не поменялось: 8916ddddddd, где d - от 0 до 9, можно разделить на 2 части:
1) 891600ddddd-891614ddddd
2) 891615ddddd-891699ddddd
причём первая часть составит ровно 15% от всевозможных комбинаций. Совсем не обязательно фиксировать первые цифры. Можно любые, например 3(единицы) и 1(десятки) с конца.
Вообще я догадываюсь что есть ещё какие-то ограничения, но пока они не заявлены, имею право издеваться
причём первая часть составит ровно 15% от всевозможных комбинаций. Совсем не обязательно фиксировать первые цифры. Можно любые, например 3(единицы) и 1(десятки) с конца. »
Диапазон 916 я взял для примера, если бы все было так просто, я думаю выше написанным регулярным выражением я уже бы пользовался, только прикол в том что кроме первых цифр 79 часть остального диапазона нам не известа и суть в том, чтобы понять как 15% от всех возможных емкостей отфильтровать по регэкспу.
>_<
если нужно из неизвестного кол-ва случайных 7-значных чисел с неизвестной статистикой выбрать 15% от их кол-ва, то тут regex не поможет. Не для этих он целей. Тут нужен скрипт типа "отросить каждый энный элемент"
|| {dest-addr-regex |"79\d{7}[0-1]\d"|} || 20% (по предпоследней цифре)
{dest-addr-regex |"79\d{7}[0-2]\d"|} || 30% (по предпоследней цифре)
|| {dest-addr-regex |"79\d{7}[0-3]\d"|} || 40% (по предпоследней цифре)
|| {dest-addr-regex |"79\d{7}[0]\d"|} || 10% (по предпоследней цифре)
|| {dest-addr-regex |"79\d{6}[1-5][0]\d"|} || 5% (по предпоследним цифрам)
|| {dest-addr-regex |"79\d{7}[0-35]\d"|} || 50% (по предпоследней цифре)
|| {dest-addr-regex |"79\d{6}[0-5][5-9]\d"|} || 15% (по предпоследним цифрам)
|| {dest-addr-regex |"79\d{6}[0-8][0-3]\d"|} || 36% (по предпоследним цифрам)
|| {dest-addr-regex |"79\d{6}[0-7][0-3]\d"|} || 32% (по предпоследним цифрам)
|| {dest-addr-regex |"79\d{6}[0-1][7]\d"|} || 02% (по предпоследней цифре)
Нашел решение.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.