Regex для символов слова на любом языке

8

Проверяя механизм регулярного выражения PHP, я вижу, что он считает, что только [0-9A-Za-z_] является символом слова. Буквы не-ASCII-языков, таких как иврит, не соответствуют символам слова с [\w]. Существуют ли какие-либо последовательности escape-кода в PHP или Perl, которые будут соответствовать букве на любом языке? Я мог бы добавлять диапазоны для каждого алфавита, который, как я ожидаю, будет использоваться, но пользователи всегда удивят нас неожиданными языками!

Обратите внимание, что это не для фильтрации безопасности, а для токенизации текста.

Теги:

2 ответа

11
Лучший ответ

Попробуйте [\pL_] - см. ссылку в

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

  • 1
    Очень мило спасибо. Я также должен был добавить модификатор u , чтобы заставить его работать.
1

Попробуйте \p{L}. Он соответствует любому типу письма с любого языка. Если вы не хотите использовать char set [].

Ещё вопросы

Сообщество Overcoder
Наверх
Меню