powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Оздоровление регулярного выражения
3 сообщений из 3, страница 1 из 1
Оздоровление регулярного выражения
    #38862279
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обнаружил, что класс [:alnum:] и спецклассы "\w" и "\w" не понимают русских букв в многобайтных кодировках. Как оказалось, это штатная особенность PCRE - они понимают только ASCII-символы [A-Za-z0-9]:
http://webew.ru/posts/1836.webew

Сразу в голову полезла мысль универсального решения - функция-обёртка, которая корректирует регулярное выражение так, чтобы "\w", "\W" и [:alnum:] стали понимать русские символы из других кодировок. Т.е. эти классы необходимо заменить на [a-zA-Z\dА-Яа-яЁё] или [A-Za-z0-9А-Яа-я]. Но здесь возникают следующие сложности:

1) Замена должна выполняться по-разному (с заключением в квадратные скобки или нет), в зависимости от того, находится ли исходный "непонятливый" класс внутри группирующих квадратных скобок или нет. Если класс [:alnum:] всегда находится внутри квадратных скобок, то "\w", "\W" могут находится и внутри, и вне квадратных скобок
2) Внутри квадратных скобок могут быть экранированные квадратные скобки + обратный слэш, предваряющий квадратную скобку, может предваряться обратным слэшем (в этом случае он не будет экранировать квадратную скобку)
3) При наличии синтаксических ошибок в исходном регулярном выражении после его корректировки (в этом случае откорректированная регулярка, также должна быть некорректной) должна быть возможность по сообщениям php идентифицировать ошибку в исходной регулярке.

Кто-нибудь справится с задачей ?
...
Рейтинг: 0 / 0
Оздоровление регулярного выражения
    #38862827
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02,

есть задача чтото спарсить? = под него пишется регулярка = профит!
зачем писать этот велик с квадратными колесами?
универсальные решения всегда тормозные и сложные.
...
Рейтинг: 0 / 0
Оздоровление регулярного выражения
    #38862852
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cyrax_02,

Код: php
1.
perl -Mutf8 -CO -E 'say  for  "Юёя asdf тыиий" =~ / (\w+) /gx'



-- output---
Юёя
asdf
тыиий
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Оздоровление регулярного выражения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]