Задать вопрос
dima9595
@dima9595
Junior PHP

Как написать правильно регулярное выражение для получения всей строки с неизвестными символами?

Написал небольшой логгер коннектов к серверу, где получал логин и steam_id пользователя. Работало всё хорошо до тех пор, пока в логи не попался пользователь, имеющий специфичные символы.
1234567891234:C�lSDY�s(7) (steam_id и логин специально изменил, на всякий пожарный).
В самом логе его ник содержит такие символы: åñ.
Моё регулярное выражение (я новичок) не срабатывает: /(\d+:\w+)/s

Подскажите пожалуйста что можно с этим сделать. Заранее благодарю.

PS: Я как понимаю, вместе \w можно написать что-то типо этого [a-zA-ZäöüßÄÖÜ]. Есть ли возможность не делать перечисления вручную?
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой 9 комментариев
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
/(\d+:\w+)/us
Ответ написан
Комментировать
dima9595
@dima9595 Автор вопроса
Junior PHP
Проблема, если это так можно было назвать - решена.

Благодаря подсказке Adamos я предположил что я сохраняю файл в неправильной кодировке.
Изначально проблема была в том, что я сохранял оригинальный файл лога в свою систему в неправильной кодировке. Оригинальный файл логов имел кодировку UTF-16LE, а я его пересохранял в Windows-1251. А надо было в UTF-8.

Вариант решения Rsa97 не работала изначально как у меня было в вопросе, но всё равно спасибо за подсказку с /u (поддержка unicode) решением.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 10:44
15000 руб./за проект
22 дек. 2024, в 10:12
10000 руб./за проект
22 дек. 2024, в 09:51
3000 руб./за проект