Регулярное выражение для всей строки

Я очень новичок в php. Мне нужно проверить, содержит ли данная строка символы из заданного набора {a, b, c} . Итак, я пытаюсь использовать регулярные выражения. "(abc)+" должен сделать трюк.

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

Я уверен, что есть простой способ сделать это. В принципе, мне нужен двоичный ответ, соответствует ли вся строка правилу. Могли бы вы, ребята, помочь мне?

Благодаря!

Вы можете создать свой класс символов, используя квадратные скобки. Таким образом, [abc] будет соответствовать любому из символов внутри класса (скобки).

Чтобы получить серию из них, вам нужен квантификатор. Вы уже использовали + что означает один или несколько. Если вы также хотите разрешить пустую строку, вы можете использовать значение * означающее ноль или более.

Чтобы убедиться, что вы проверяете полную строку, вам нужны якоря. ^ будет соответствовать началу строки и $ концу строки.

 ^[abc]+$ 

Это регулярное выражение будет соответствовать, если полная строка состоит только из abc и имеет хотя бы один символ.

Вы можете тестировать регулярные выражения онлайн, например, в Regexr. Здесь вы можете увидеть это регулярное выражение и, конечно, изменить его.

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

Просто используйте что-то вроде этого:

 [^abc]