La fonction preg_replace () de PHP ne remplace pas toutes les lignes dans:
12*some input
12*some input
1*some input
Le code est:
preg_replace("/^(\d{1,2}[^0-9])/", "", $text);
Le résultat est:
some input
12*some input
1*some input
Mais je veux ceci:
some input
some input
some input
Réponses:
En fonction de la manière dont l’implémentation de PHP fonctionne, je pense que vous manquez une option ou que votre regex ne fait pas ce que vous pensez.
La regex ci-dessus rechercherait un ou deux chiffres suivis de chiffres à partir du début de la chaîne. Selon la façon dont cela fonctionne, un saut de ligne n'indique pas que cela
^
devrait correspondre à nouveau.Si vous examinez les modificateurs de modèle PCRE dans le manuel, vous devrez probablement fournir le
m
drapeau pour activer le mode multiligne.De plus, bien qu'il manque à cette page de manuel, vous aurez peut-être besoin de l'indicateur global. Donc la regex ci-dessus deviendrait:
Vous pourrez peut-être également tester cette expression régulière sur des plates-formes telles que RegEx 101 .
la source
/^(\d{1,2}[^0-9])/m
/g
modificateur soit valide en PHP (contrairement à Perl).