Я очень новичок в php. Мне нужно проверить, содержит ли данная строка символы из заданного набора {a, b, c} . Итак, я пытаюсь использовать регулярные выражения. "(abc)+" должен сделать трюк.
Однако, глядя на записи руководства для preg_match и связанных с ними функций, я заметил, что эти функции выполняют подстроку, вместо того, чтобы сопоставлять всю строку с правилом регулярного выражения.
Я уверен, что есть простой способ сделать это. В принципе, мне нужен двоичный ответ, соответствует ли вся строка правилу. Могли бы вы, ребята, помочь мне?
Благодаря!
Вы можете создать свой класс символов, используя квадратные скобки. Таким образом, [abc] будет соответствовать любому из символов внутри класса (скобки).
Чтобы получить серию из них, вам нужен квантификатор. Вы уже использовали + что означает один или несколько. Если вы также хотите разрешить пустую строку, вы можете использовать значение * означающее ноль или более.
Чтобы убедиться, что вы проверяете полную строку, вам нужны якоря. ^ будет соответствовать началу строки и $ концу строки.
^[abc]+$
Это регулярное выражение будет соответствовать, если полная строка состоит только из abc и имеет хотя бы один символ.
Вы можете тестировать регулярные выражения онлайн, например, в Regexr. Здесь вы можете увидеть это регулярное выражение и, конечно, изменить его.
Вместо того, чтобы сопоставлять всю строку с вашими желаемыми символами, вы можете просто попытаться сопоставить любые другие символы, если есть хотя бы одно совпадение, тогда строка не подчиняется вашему правилу.
Просто используйте что-то вроде этого:
[^abc]