login  Naam:   Wachtwoord: 
Registreer je!
 Forum

verschil tussen /ise en _ise ect

Offline RobbyTown - 19/01/2005 22:33
Avatar van RobbyTownHTML interesse /ise
_ise
#si

dat zie je vaak bij ubb parsers maar wat betekent het?

En bij het begin heb je ook nog vaak \\ en _\ of #\

Het geeft duidelijk een ander resultaat maar wat houd het allemaal in?

4 antwoorden

Gesponsorde links
Offline twopeak - 19/01/2005 23:21
Avatar van twopeak Gouden medaille

PHP ver gevorderde
ik ben heel slecht in reg exp, maar;

de ubb parsers gebruiken regular expressions, dwz. men zoekt naar een string, waarin men bepaalde symbolen kan gebruiken (? voor1 teken, * voor meerdere tekens enz.)

elke regular expression heeft een teken dat het begin en einde van de regexp aanduid (delimiter). Deze staat vooraan en achteraan de regular expression. Meestal wordt een "/" gebruikt, maar je kan ook een "_" of "#' gebruiken (naar eigen goeddunken)
Na de afsluitende, kun je nog een paar "opties" (pattern modifiers) instellen.
zo betekend de i aan het einde dat het hoofdletter ongevoelig is (insensitive)

Duidelijke manuals rond dit onderwerp zijn moeilijk te vinden, omdat de schrijvers vaak te chaotisch uitleggen...

PHP gebruikt (logisch genoeg) dezelfde manieren dan perl, dus als je informatie zoekt hieromtrent, kan je die van perl ook gebruiken.
Hier vind je de info op de php site:
http://be2.php.net/manual/en/ref.pcre.php
Offline Thomas - 19/01/2005 23:30 (laatste wijziging 19/01/2005 23:32)
Avatar van Thomas Moderator alles wat achter het patroon staat (alle letters) zijn "pattern modifiers" en hebben invloed op het hele pattern-matching proces (dit is dus onafhankelijk van het patroon).

i - patroon wordt case-insensitive gematched
s - \r en \n (m.a.w. newline karakters) worden ook meegenomen in het "."-patroon (de punt) dacht ik, dus als je het patroon (.*) matched, mogen hier regelovergangen in zitten als je de /s switch gebruikt
e - het resultaat wordt geëvalueerd - dit doe je als je het resultaat van een match nog wilt bewerken (je gooit het resultaat bijvoorbeeld door een functie heen)

ff spitten op PHP.net, veel oefenen, en dan snap je het op den duur wel.

Die /, #, _ of wat dan ook geven alleen maar aan waar het patroon start en eindigt - ik gebruik meestal gewoon /.
Offline RobbyTown - 20/01/2005 00:33
Avatar van RobbyTown HTML interesse Thnx, maar waar moet ik dan zoeken op php.net. Ik had al zitten zoeken maar vond niet veel.....

Want ik heb ook ooit gezien dat sommige dit hadden
#isU en #siU

Wat betekent die U dan weer?

Ow jah klein vraagje... Maakt de volgorde iets uit?
Dus #si en #is Zal dat verschil uit maken of niet?
Offline Thomas - 20/01/2005 08:50 (laatste wijziging 20/01/2005 10:41)
Avatar van Thomas Moderator pattern modifiers
pattern syntax

De switch U staat voor "ungreedy".
Stel je hebt een patroon [dik]text[/dik] en dat wil je vervangen door <b>text</b>, en je gebruikt de ungreedy switch niet, dan wordt het volgende patroon:
[dik]aap[/dik] noot [dik]mies[/mies]
veranderd in:
<b>aap[/dik] noot [dik]mies</b>
(er wordt dus een zo groot mogelijk stuk (greedy) gematched)

Gebruik je de U-switch, dan wordt:
[dik]aap[/dik] noot [dik]mies[/mies]

veranderd in:
<b>aap</b> noot <b>mies</b>
(wat je waarschijnlijk wilt)
Ungreedy matchen zorgt ervoor dat je matches zo kort / klein mogelijk zijn.

De volgorde van de switches maakt volgens mij niet uit.

PS: Wanneer je op PHP.net zoekt op preg_replace in de functie-lijst, en je op deze functie-link klikt, krijg je dus de specificatie van deze functie te zien... In de linker kolom staan die links naar pattern modifiers en pattern syntax. Als je niet precies weet waar je op PHP.net naar moet zoeken, zoek dan naar een verwant ding wat je wel kent. Links die in die blauwe kolom staan zijn altijd gerelateerd aan dit verwante ding dus heb je een grote kans dat dat wat je werkelijk zoekt hier tussen staat.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s