php preg_replace não substituindo todas as linhas

0

preg_replace php não substituindo todas as linhas

12*some input
12*some input
1*some input

e o código é

preg_replace("/^(\d{1,2}[^0-9])/", "", $text);

O resultado é

some input
12*some input
1*some input

mas eu quero isso

some input
some input
some input
    
por A. Sang 09.05.2017 / 10:23

1 resposta

0

Dependendo de como a implementação do PHP é fraca, você não tem uma opção ou seu regex não faz o que você acha que faz.

/^(\d{1,2}[^0-9])/

O Regex acima procuraria por 1-2 números seguidos não por números desde o início da string. Dependendo de como funciona, uma quebra de linha não indica que ^ deve corresponder novamente.

Se você olhar para os modificadores de padrão PCRE no manual , provavelmente precisará forneça o sinalizador m para ativar o modo de várias linhas. Além disso, embora esteja faltando na página de manual, talvez seja necessário o sinalizador global. Então o regex acima se tornaria:

/^(\d{1,2}[^0-9])/gm

Você também pode testar essa expressão regular em plataformas como RegEx 101 .

    
por 09.05.2017 / 12:38

Tags