Регулярное выражение PHP для проверки, может ли строка быть сформирована из определенного набора символовPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Регулярное выражение PHP для проверки, может ли строка быть сформирована из определенного набора символов

Сообщение Anonymous »

Я работаю с цифровыми строками длиной от 4 до 8 цифр в диапазоне от 0001 до 99999999. Примеры:
  • 0010
  • 877565
  • 90204394
Мне нужно проверить, может ли числовая строка быть сформирована из определенного набор. Думайте об этом как о мешочке для скрэббл с разными персонажами. В наборе:
  • 2 раза 0 (00)
  • 4 раза 1 (1111)
  • 3 раза 2 (222)
  • 2 раза 3 (33)
  • 3 раза 4 (444)
  • 5 раз по 5 (55555)
  • 2 раза по 6 (66)
  • 5 раз по 7 (77777)
    2 раза 8 (88)
  • 2 раза 9 (99)
С помощью этого определенного набора цифр строка 0010 не может быть сформирована, поскольку в ней слишком много на 1 ноль: нужно 3, но набор предоставляет только 2. Результат должен быть: false.Напротив, строка 90204394 может быть сформирована, поскольку определенный набор содержит достаточное количество каждой цифры. Это соответствует параметрам; желаемый результат: true.
Я решил выполнить проверку с помощью регулярного выражения, потому что оно вернет либо true, либо false, что в данном случае идеально. У меня получилось следующее:

Код: Выделить всё

preg_match('/(0{0,2}1{0,4}2{0,3}3{0,2}4{0,3}5{0,5}6{0,2}7{0,5}8{0,2}9{0,2})/', $string);
К сожалению, я получаю результат, что каждая проверенная строка выдает true, даже если ее явно невозможно сформировать; например 08228282 (поскольку он содержит одну 8 и одну 2 слишком много).
Что мне здесь не хватает?

Подробнее здесь: https://stackoverflow.com/questions/790 ... racter-set
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»