Hoi,
In mijn framework zit een parser die content uit het CMS hier en daar wat 'verfraait'. Een onderdeel daarvan is een regex die hyperlinks naar downloadbare bestanden op de eigen site voorziet van een extra linkje naar de zipversie van het bestand.
Hiervoor heb ik ooit lang zitten zweten op een goede regex en het volgende voor mekaar geboxt.
Alle betreffende links hebben een relatief pad, en de extentie .file.
Nu heeft dit altijd prima gewerkt, tot vandaag. Iemand gooit een lijstje links in het CMS,en de regex gaat de mist in. De betreffende content:
en als ik de matches van de regex bekijk zie ik:
Hier gaat dus vanalles mis: De sluitende anchor-tag wordt gemist etc. Maar als ik naar de regex kijk zie ik het probleem niet - ziet er gewoon goed uit. En om maar gelijk met de billen bloot te gaan:ik ben GEEN held met regexen
In mijn framework zit een parser die content uit het CMS hier en daar wat 'verfraait'. Een onderdeel daarvan is een regex die hyperlinks naar downloadbare bestanden op de eigen site voorziet van een extra linkje naar de zipversie van het bestand.
Hiervoor heb ik ooit lang zitten zweten op een goede regex en het volgende voor mekaar geboxt.
code:
1
| '/<a href="\/([-A-Z0-9+&@#\/\%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])\.(.*?)\.file"(.*?)>(.*?)<\/a>/si' |
Alle betreffende links hebben een relatief pad, en de extentie .file.
Nu heeft dit altijd prima gewerkt, tot vandaag. Iemand gooit een lijstje links in het CMS,en de regex gaat de mist in. De betreffende content:
HTML:
1
2
3
4
5
| <ul> <li><a href="/download1.pdf.file">Download1</a></li> <li><a href="/download2.pdf.file">Download2</a></li> <li><a href="/download3.pdf.file">Download3</a></li> </ul> |
en als ik de matches van de regex bekijk zie ik:
code:
1
2
3
4
5
| [0] => <a href="/download1.pdf.file">Download1</a></li><li><a href="/download2.pdf.file">Download2</a> [1] => download1.pdf [2] => file">Download1</a></li><li><a href="/download3.pdf [3] => [4] => Download3 |
Hier gaat dus vanalles mis: De sluitende anchor-tag wordt gemist etc. Maar als ik naar de regex kijk zie ik het probleem niet - ziet er gewoon goed uit. En om maar gelijk met de billen bloot te gaan:ik ben GEEN held met regexen