Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP]preg_match: slash binnen matches escapen

Anoniem
bvaessen
2 antwoorden
  • Ik heb data die er als volgt uit kan zien, maar variabel is:
    [code:1:e77baa7ca6]<title>bol.com | Boeken (Nederlands) | Warmteleer voor technici / druk 8, Kimmenaede van</title>
    <title>bol.com | Boeken (Nederlands) | Moesashi, Bert van der Meij</title>[/code:1:e77baa7ca6]
    Hieruit wil ik de titel en auteur vissen. Is op zich eenvoudig met preg_match, maar soms staat er in die match dan dus een "/" voor het aangeven van de druk. Valt die op de een of andere manier te escapen?
  • Volgens mij kan dat zo:
    [code:1:33835f22ef]#^<title>(.*)?\|(.*)?\|([^\/]*)(\/(.*)?)?,(.*)?</title>$#[/code:1:33835f22ef]
    Eerst match je title,
    dan een willekeurige tekst tot aan een pipe, nog een keer (kan ook efficienter worden opgeschreven maar misschien wil je eerst altijd bol.com matchen),
    dan een willekeurige titel totdat je een / tegenkomt (of een komma, die na het volgende optionele deel staat)
    vervolgens dus optioneel een / en een willekeurige tekst daarachter
    daarna een komma met willekeurige auteur
    en afsluiten met /title

    Wanneer je met preg_match werkt, staat in $mathes[3] de titel, en in [6] de auteur.
    Merk op dat ik niet expliciet spaties in de regexp heb gezet, dus die komen in de uitvoer er wel bij te staan!

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.