Archief - PHP: Stukken uit een regex halen.

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

passero

Legacy Member
Als je in een regex haakjes hebt staan kan je die gebruiken in bijvoorbeeld de htaccess voor een url rewrite door middel van $1 $2 ...
Kan ik dat ook gebruiken in PHP zodat ik waarden kan opvragen die binnen een bepaalde string voorkomen?

passero

Legacy Member
Daar staat gewoon op hoe je kan checken op regex maar niet hoe je stukken er kan uithalen...

Rvl

Legacy Member
zodat ik waarden kan opvragen die binnen een bepaalde string voorkomen << Kan je eens een specifiek voorbeeld geven van een string die jij in gedachten had?

passero

Legacy Member
IK heb bijvoorbeeld volgende string:

<h1>Dit is de content</h1>

Via deze expressie: <h1>(.*)</h1>
Word de string "Dit is de content" gehighlight in een tooltje dat ik gebruik.
In de htaccess wordt ook gebruik gemaakt van de haakjes om een variabele te definiëren. Zo doe je nu eenmaal een url rewrite op basis van regexp.
Ik vroeg me dus af er in php een functie was waarbij ik dus als parameters:
<h1>Dit is de content</h1> en <h1>(.*)</h1> en dat ik dan "Dit is de content" terugkrijg als returnwaarden. Eventueel in een arayvorm voor als er meerdere zijn.
In mijn applicatie zijn het geen html tags dat ik gebruik maar hier gebruik ik het om een duidelijk voorbeeld te geven.

passero

Legacy Member
ik heb ondertussen zo een scriptje geschreven maar ik dacht dat het mss mogelijk was via een functie :)
Ik heb dan mijn regexp in 2 gesplits en eerst een split gedaan op het eerste stuk, en dan een split gedaan op het 2de stuk van de regexp. Op die manier bekom ik het juiste resultaat.

Rvl

Legacy Member
of gewoon iets ala
PHP:
 $text = preg_replace("#\[h1\](.*?)\[/h2\]#si", "\\1", $string);
edit: dus eigelijk toch zoals ik dacht gewoon de regex functies die bij php zitten. Me is going bananas tijdes exames

killgore

Legacy Member
uhu
of gewoon preg_match(_all), daar krijg je je array normaal gezien.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan