Почему этот preg_match оценивает пробелы? - PullRequest
0 голосов
/ 31 мая 2018

У меня есть этот preg_match, но я не могу понять почему, он оценивает пробелы:

preg_match('/[\'^\"^\0-9^£$%&*()!·¢∞&÷“≠´}{@#~?><>,|=_+¬-]/'

Я хочу проверить, есть ли какой-либо из этих символов, но разрешает пробелы, извините, яне так хорошо с регулярным выражением, я знаю, что пространство в регулярном выражении \ s, заранее спасибо.

1 Ответ

0 голосов
/ 31 мая 2018

\0-9 не создает диапазон чисел.Используйте \d или 0-9 без обратной косой черты.Вам также не нужно избегать двойной кавычки, и вам нужно перечислить каждый символ только один раз, > и ^ были перечислены более одного раза.Если вы пытаетесь соединить их с предыдущим символом, это не сработает.Вы можете использовать дополнительную группировку для этого (this|that).Каждый символ в классе символов индивидуален, за исключением диапазонов (и поэтому будьте осторожны с -).

Это должно функционировать так, как вы ожидаете, что текущее регулярное выражение:

[\'^"0-9£$%&*()!·¢∞&÷“≠´}{@#~?<>,|=_+¬-]
...