preg_match некоторые символы - PullRequest
       0

preg_match некоторые символы

0 голосов
/ 18 октября 2011

Мне нужно регулярное выражение для моего preg_match(), оно должно содержать (*) следующие символы:

Строка может содержать только буквы, цифры и следующие знаки препинания:

  • полная остановка (.)
  • запятая (,)
  • тире (-)
  • подчеркивание (_)

Понятия не имеюкак это можно сделать на регулярном выражении, но я думаю, что есть способ!

1 Ответ

2 голосов
/ 18 октября 2011
^[\p{L}\p{N}.,_-]*$

будет соответствовать строке, содержащей только буквы (Unicode), цифры или «специальные символы», которые вы упомянули. [...] - это класс символов , что означает «один из символов, содержащихся здесь». Вам нужно использовать модификатор Unicode /u, чтобы это работало:

preg_match(`/^[\p{L}\p{N}.,_-]*$/u', $mystring);

Если вас интересуют только буквы ASCII, проще:

^[\w.,-]*$

или в PHP:

preg_match(`/^[\w.,-]*$/', $mystring);
...