Ik heb een preg_replace probleem
. Wanneer mijn patronen elkaar overlappen (omdat grenswaarden dubbel gebruikt kunnen worden), werkt m'n replace niet. Een concreet voorbeeld is hetvolgende:
Ik wil in een lange lap tekst alle patronen vervangen die uit de combinatie letters EN hoofdletters bestaan.
De output hiervan is ' HA hu '. HA had ook vervangen moeten worden, maar het lijkt me dat dat niet gebeurt doordat de spatie ervoor al gebruikt wordt door de vorige match.
Het gaat me nu er niet om dat dit specifieke probleem uitgewerkt wordt, of dat deze expressie efficienter kan. Maar meer om het probleem van de overlappende patronen op te lossen. Ik wil dit namelijk ook in andere (niet spatie) achtige contexten kunnen gebruiken.
Heeft iemand een oplossing, hint, of een term waarop ik in google kan zoeken? Ik kom dit in geen enkele (beginners-) tutorial tegen.

Ik wil in een lange lap tekst alle patronen vervangen die uit de combinatie letters EN hoofdletters bestaan.
PHP:
1
2
3
4
5
6
| $text = " HI HA Ho hu "; // patronen met een of meer hoofdletters omgeven door spaties. $pattern = "/\s[a-z]*[A-Z]+[a-zA-Z]*\s/"; echo preg_replace ($pattern," ",$text); |
De output hiervan is ' HA hu '. HA had ook vervangen moeten worden, maar het lijkt me dat dat niet gebeurt doordat de spatie ervoor al gebruikt wordt door de vorige match.
Het gaat me nu er niet om dat dit specifieke probleem uitgewerkt wordt, of dat deze expressie efficienter kan. Maar meer om het probleem van de overlappende patronen op te lossen. Ik wil dit namelijk ook in andere (niet spatie) achtige contexten kunnen gebruiken.
Heeft iemand een oplossing, hint, of een term waarop ik in google kan zoeken? Ik kom dit in geen enkele (beginners-) tutorial tegen.