Как удалить все нечисловые и не буквенные символы, идущие в начале строки до первой буквы или цифры

Есть строка

$str = "=~*_Размер 3 * 2";

Надо удалить все символы, которые идут в начале строки до первой встреченной в строке буквы (русской или латинской) или цифры. То есть из данной строки на выходе я хочу получить

Размер 3 * 2

Пробовал что-то типа такого

$str = preg_replace("/([^a-zA-Z0-9А-Яа-я]+?)[a-zA-Z0-9А-Яа-я]/u", "", $str);

но на выходе получается

азмер


Ответы (1 шт):

Автор решения: Wiktor Stribiżew

Используйте

<?php

$str = "=~*_Размер 3 * 2";
echo preg_replace('/^[^\p{L}\d]+/u', '', $str);

См. пример кода на PHP.

Подробности

  • ^ - начало строки
  • [^ - начало отрицающего символьного класса, находит все символы, отличные от
    • \p{L} - любой буквы
    • \d - цифры
  • ]+ - один и более раз

См. пример работы выражения.

→ Ссылка