php preg_replace не заменяет все строки
12*some input
12*some input
1*some input
и код
preg_replace("/^(\d{1,2}[^0-9])/", "", $text);
Результат
some input
12*some input
1*some input
но я хочу этого
some input
some input
some input
В зависимости от того, насколько эффективна реализация PHP, вы пропускаете либо опцию, либо ваше регулярное выражение не делает то, что вы думаете.
/^(\d{1,2}[^0-9])/
Вышеуказанное регулярное выражение будет искать 1-2 числа, за которыми не следуют числа в начале строки. В зависимости от того, как это работает, разрыв строки не означает, что ^
должен снова совпадать.
Если вы посмотрите на PCRE Pattern Modifiers в руководстве, вам, вероятно, потребуется указать флаг m
чтобы включить многострочный режим. Кроме того, хотя он отсутствует на этой странице руководства, вам может понадобиться глобальный флаг. Таким образом, приведенное выше регулярное выражение станет:
/^(\d{1,2}[^0-9])/gm
Вы также можете проверить это регулярное выражение на таких платформах, как RegEx 101.