Jongens, ik zit hier intussen een middag op te studeren, maar ik kom er niet uit.
Het probleem is het volgende, uit een html fragment wil ik met behulp van een regex de img tags halen, waarvan de attributen src, alt en id me interesseren.
Nu had ik een aantal opzetjes, maar elke keer loop ik er tegenaan dat of niet alle tags eruit gematcht worden, of dat ik alle tags er netjes uit krijg, maar dan de attributen er niet meer uitgevist krijg.
Aanvankelijk was ik begonnen met deze regex <img([^>]+)/>
Deze haalt keurig alle img tags eruit, maar nu wil ik in een en dezelfde regex de attributen als group selecteren.
Dus kwam ik op deze regex <img.+id="(.+?)".+src="(.+?)".+alt="(.*?)".*/>
Deze haalt keurig alle id, src en alt attributen eruit, maar zodra de img tags achter elkaar staan, ziet ie deze als een lange tag. Hij eet dus als het ware de volgende tags ook op. Nu weet ik dat ik dit met lookahead kan oplossen, maar ik kom er niet uit hoe.
Bovendien, is deze regex afhankelijk van de volgorde van de attributen, en die volgorde is natuurlijk onbepaald.
Als ik zo zoek schijnt dit in PHP al een aantal keer gedaan te zijn, maar die regexen zitten anders in elkaar dan in .NET.
Wie heeft een ingeving of herkent dit probleem?
Het probleem is het volgende, uit een html fragment wil ik met behulp van een regex de img tags halen, waarvan de attributen src, alt en id me interesseren.
Nu had ik een aantal opzetjes, maar elke keer loop ik er tegenaan dat of niet alle tags eruit gematcht worden, of dat ik alle tags er netjes uit krijg, maar dan de attributen er niet meer uitgevist krijg.
Aanvankelijk was ik begonnen met deze regex <img([^>]+)/>
Deze haalt keurig alle img tags eruit, maar nu wil ik in een en dezelfde regex de attributen als group selecteren.
Dus kwam ik op deze regex <img.+id="(.+?)".+src="(.+?)".+alt="(.*?)".*/>
Deze haalt keurig alle id, src en alt attributen eruit, maar zodra de img tags achter elkaar staan, ziet ie deze als een lange tag. Hij eet dus als het ware de volgende tags ook op. Nu weet ik dat ik dit met lookahead kan oplossen, maar ik kom er niet uit hoe.
Bovendien, is deze regex afhankelijk van de volgorde van de attributen, en die volgorde is natuurlijk onbepaald.
Als ik zo zoek schijnt dit in PHP al een aantal keer gedaan te zijn, maar die regexen zitten anders in elkaar dan in .NET.
Wie heeft een ingeving of herkent dit probleem?
Een file op de A12 is nooit grappig...