Регулярные выражения

S
На сайте с 11.03.2010
Offline
29
722

Всем добрый день, столкнулся с проблемой UTF-8 кодировки, кирилице и регулярных выражениях.

Не могу понять как лучше сделать проверку русских символов?

есть два решения:

/^[\pL]*$/u

и

/^[\x80-\FF]*$/

Со вторым понятно - все символы кирилицы, а вот чтоже всетаки занчит pL, я так и не понял, разъясните пожалуйста, кто в курсе.

[umka]
На сайте с 25.05.2008
Offline
456
#1
secach:
а вот чтоже всетаки занчит pL, я так и не понял, разъясните пожалуйста, кто в курсе.

http://www.php.net/manual/en/regexp.reference.unicode.php

Лог в помощь!
S
На сайте с 11.03.2010
Offline
29
#2

Спасибо, английский правдо незнаю, но уже что-то понятно)) получается, что /[\pL]/u более граммотное решение чем /[\x80-\xFF]/

[umka]
На сайте с 25.05.2008
Offline
456
#3
secach:
Спасибо, английский правдо незнаю, но уже что-то понятно)) получается, что /[\pL]/u более граммотное решение чем /[\x80-\xFF]/

Если задача найти уникодные буквы, то да.

Второй вариант — просто бинарный поиск. Не факт, что эти символы вместе будут образовывать правильную уникодную строку :)

S
На сайте с 11.03.2010
Offline
29
#4

Вообще задача сделать проверку имени, куда входят все буквы английские и русские, но форма отсылается через ajax в формате UTF-8, можно было сконвертировать данные в нужный формат и работать с обычным \w, но т.к. тока учусь, хотелось более корректно разобраться в данном вопросе. Спасибо за ссылку, на такую еще не натыкался, единственное не понял только часть когда ставится

\pL и \p{L}, в чем разница, типа в одном случае для буквы, а в другом для массива?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий