abonnement Unibet Coolblue Bitvavo
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 21:37:21 #176
1972 Swetsenegger
Egocentrische Narcist
pi_20651181
quote:
Op donderdag 15 juli 2004 21:33 schreef Light het volgende:
Hij kan nog beter, bedenk ik me

$invoer = preg_replace("/(www\..*)(\s|$|\[)/Ui",'<a href="http://\1" rel="external">\1</a>\2',$invoer);

Dan nemen we alles dat begint met www. (let op die punt) tot aan de eerste spatie, $-teken of blokhaak openen.
In hoeverre is dat anders van wat ik doe? Het is wat.... duidelijker.
-edit- hmz in mijn geval zou www123swets.com ook een link worden in jouw geval niet
Wat doet die U ook alweer?

-edit-

This modifier inverts the "greediness" of the quantifiers so that they are not greedy by default, but become greedy if followed by "?". It is not compatible with Perl. It can also be set by a (?U) modifier setting within the pattern.

wtf?

[ Bericht 12% gewijzigd door Swetsenegger op 15-07-2004 21:47:13 ]
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 21:45:58 #177
1972 Swetsenegger
Egocentrische Narcist
pi_20651433
Overigens dom dat ik de \2 vergat. uiteraard is de \1 niet hetzelfde als de \2 (waar ik vanuit ging)
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 21:49:39 #178
1972 Swetsenegger
Egocentrische Narcist
pi_20651529
Light, hoe lang PHP jij al?

Nog verbeter tips voor deze:
quote:
$invoer = preg_replace("/([a-z0-9._-]*@.*?)(\s|$|\[)/i",'<a href="mailto:\1">\1</a>\2',$invoer);
Ik zit nog met twee probleempjes mbt de regexp's.
Wat als er ge-eindigt wordt op een punt (www.123swets.com.) en mbt ftp als er user:inlog@ftp.naam.com wordt gepost wordt wordt dat e-mail (een van de redenen waarom ik ftp er nog niet in gezet heb
pi_20651678
quote:
Op donderdag 15 juli 2004 21:37 schreef Swetsenegger het volgende:

[..]

In hoeverre is dat anders van wat ik doe? Het is wat.... duidelijker.
Wat doet die U ook alweer?

-edit-

This modifier inverts the "greediness" of the quantifiers so that they are not greedy by default, but become greedy if followed by "?". It is not compatible with Perl. It can also be set by a (?U) modifier setting within the pattern.

wtf?
Die U maakt de expressie ungreedy. Standaard is een expressie greedy, dwz hij werkt volgens het principe "pakken wat je pakken kan". En dat merk je vooral bij die *. Als die ungreedy is dan pakt het sterretje tot het eerste teken dat de rest van de expressie accepteeert.

Voorbeeld: Als je [.b]1[./b]2[.b]3[./b] greedy gaat verwerken dan krijg je het hele stuk "1[./b]2[.b]3" bold. Bij ungreedy worden alleen de 1 en de 3 bold gegeven, zoals de bedoeling is.

En het verschil tussen www*.* en www\..* is eigenlijk heel logisch. De eerste pakt ww, gevolgd door 0 of meer w's, gevolgd door nul of meer willekeurige tekens. De tweede pakt www, gevolgd door een punt (vandaar die \.), gevolgd door 0 of meer willekeurige tekens. En ww.123swets.com is geen geldige url, die hoef je ook niet als zodanig te parsen. wwww.123swets.com ook niet. Maar www*.* vindt ze allebei prima
pi_20651747
quote:
Op donderdag 15 juli 2004 21:49 schreef Swetsenegger het volgende:
Light, hoe lang PHP jij al?
Ik heb enige ervaring
En reguliere expressies zijn leuk om mee te spelen
pi_20651853
Trouwens, aan die url parser kan nog wel het een en ander verbeterd worden. Maar ik stoe eerst even met dat mailadres ding
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 22:04:22 #182
1972 Swetsenegger
Egocentrische Narcist
pi_20651921
quote:
Op donderdag 15 juli 2004 21:54 schreef Light het volgende:

[..]

Die U maakt de expressie ungreedy. Standaard is een expressie greedy, dwz hij werkt volgens het principe "pakken wat je pakken kan". En dat merk je vooral bij die *. Als die ungreedy is dan pakt het sterretje tot het eerste teken dat de rest van de expressie accepteeert.

Voorbeeld: Als je [.b]1[./b]2[.b]3[./b] greedy gaat verwerken dan krijg je het hele stuk "1[./b]2[.b]3" bold. Bij ungreedy worden alleen de 1 en de 3 bold gegeven, zoals de bedoeling is.
dit ga ik nog even langzaam lezen.
quote:
En het verschil tussen www*.* en www\..* is eigenlijk heel logisch. De eerste pakt ww, gevolgd door 0 of meer w's, gevolgd door nul of meer willekeurige tekens. De tweede pakt www, gevolgd door een punt (vandaar die \.), gevolgd door 0 of meer willekeurige tekens. En ww.123swets.com is geen geldige url, die hoef je ook niet als zodanig te parsen. wwww.123swets.com ook niet. Maar www*.* vindt ze allebei prima
Ja, ik had ff verder nagedacht en begreep het al Beter inderdaad.
[/quote]
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 22:04:47 #183
1972 Swetsenegger
Egocentrische Narcist
pi_20651931
quote:
Op donderdag 15 juli 2004 22:01 schreef Light het volgende:
Trouwens, aan die url parser kan nog wel het een en ander verbeterd worden. Maar ik stoe eerst even met dat mailadres ding
Ik heb dit nu
$uitvoer = preg_replace("/(www\..*)(\s|$|\[|\]|<|>|!|\?|&|\*|\(|\)|\")/Ui",'<a href="http://\1" rel="external">\1</a>\2',$uitvoer);
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 22:06:47 #184
1972 Swetsenegger
Egocentrische Narcist
pi_20651978
quote:
Op donderdag 15 juli 2004 21:57 schreef Light het volgende:

[..]

Ik heb enige ervaring
En reguliere expressies zijn leuk om mee te spelen
Ik vond al dat ik aardig ver gekomen was
Maar het is inderdaad erg leuk, maar je moet wel je kop erbij houden. Anders krijg je hele vreemde resultaten
pi_20652185
quote:
Op donderdag 15 juli 2004 22:04 schreef Swetsenegger het volgende:

[..]

Ik heb dit nu
$uitvoer = preg_replace("/(www\..*)(\s|$|\[|\]|<|>|!|\?|&|\*|\(|\)|\")/Ui",'<a href="http://\1" rel="external">\1</a>\2',$uitvoer);
Kan je onderhand dat laatste stuk niet veranderen in een expressie die zegt:
totdat ik een andere karakter tegenkom dan wat wel mag

Voor ereg-replace zou dat laatste stuk ([^A-Za-z0-9~.\\/]* ) zijn maar ik weet niet wat de pregversie daarvan is.
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 22:17:21 #186
1972 Swetsenegger
Egocentrische Narcist
pi_20652268
quote:
Op donderdag 15 juli 2004 22:14 schreef Roönaän het volgende:

[..]

Kan je onderhand dat laatste stuk niet veranderen in een expressie die zegt:
totdat ik een andere karakter tegenkom dan wat wel mag
*denkt*
Volgens mij niet.
Het gaat namelijk niet om wat wel of niet zou mogen, ik anticipeer op wat er redelijkerwijs na een url komt wat er geen onderdeel meer vanuit maakt
quote:
Voor ereg-replace zou dat laatste stuk ([^A-Za-z0-9~.\\/] zijn maar ik weet niet wat de pregversie daarvan is.
*mompelt* wat was het verschil ook alweer
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 22:27:27 #187
1972 Swetsenegger
Egocentrische Narcist
pi_20652546
*test*

www.milonic.co.uk

-edit-

Ik dacht ff dat replique hetzelfde deed als wat ik van plan was mbt het punt probleem. Namelijk niet meer dan 1 punt na de www. toestaan

want www.123swets.com. wordt geen url.

*denkt* co.uk als geldig toegevoegd?

www.gemtek.com.tw dan?

-edit-

hmz....Breuls is een betere PHP'er dan mij
pi_20652566
Is dit wat?

$invoer = preg_replace("/([A-Za-z0-9._-]+@[-A-Za-z0-9]+(\.[-A-Za-z0-9]+)*)/i",'<a href="mailto:\1">\1</a>',$invoer);
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 22:32:41 #189
1972 Swetsenegger
Egocentrische Narcist
pi_20652656
quote:
Op donderdag 15 juli 2004 22:28 schreef Light het volgende:
Is dit wat?

$invoer = preg_replace("/([A-Za-z0-9._-]+@[-A-Za-z0-9]+(\.[-A-Za-z0-9]+)*)/i",'<a href="mailto:\1">\1</a>',$invoer);
voor de apestaart 1 maal de normale karakters plus . - en _ dan een apestaart dan weer alle normale karakters 1 of meer keer en een puntplus alle normale karakters nog 1 keer

wat doet jeroen@123swets.com09 in dit geval?
pi_20652699
quote:
Op donderdag 15 juli 2004 21:57 schreef Light het volgende:

[..]

Ik heb enige ervaring
En reguliere expressies zijn leuk om mee te spelen
LEUK?!?!

ik heb een hekel aan die dingen (maar denk dat het komt omdat ik die engelse uitleg niet snap..)

heb jij toevallifg een goede nederlandse uitleg over rexexp in php???
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 22:36:10 #191
1972 Swetsenegger
Egocentrische Narcist
pi_20652735
quote:
Op donderdag 15 juli 2004 22:34 schreef mschol het volgende:

[..]

LEUK?!?!

ik heb een hekel aan die dingen (maar denk dat het komt omdat ik die engelse uitleg niet snap..)

heb jij toevallifg een goede nederlandse uitleg over rexexp in php???
Het is wel hoofdpijn code ja
Maar wel krachtig!
pi_20652863
quote:
Op donderdag 15 juli 2004 22:14 schreef Roönaän het volgende:

Voor ereg-replace zou dat laatste stuk ([^A-Za-z0-9~.\\/]* ) zijn maar ik weet niet wat de pregversie daarvan is.
Op een vergelijkbare manier

$invoer = preg_replace("/(www\.[A-Za-z0-9.\/\~]+)/i",'<a href="http://\1" rel="external">\1</a>',$invoer);

Maar ik ga hier dus uit van tekens die wel mogen.
pi_20653027
quote:
Op donderdag 15 juli 2004 22:32 schreef Swetsenegger het volgende:

[..]

voor de apestaart 1 maal de normale karakters plus . - en _ dan een apestaart dan weer alle normale karakters 1 of meer keer en een puntplus alle normale karakters nog 1 keer
En een + betekent ten minste 1 maal, zoals een * ten minste 0 maal betekent. Dus na de apestaart staat ten minste een letter, cijfer of -, dan ten minste 1 keer een punt gevolgd door weer een letter/cijfer/-
quote:
wat doet jeroen@123swets.com09 in dit geval?
Dat wordt dan ook vertaald naar een mailadres. Inclusief die 09, dus een werkend adres wordt het niet.

[ Bericht 5% gewijzigd door Light op 15-07-2004 22:53:26 (quote gefixt) ]
pi_20653110
quote:
Op donderdag 15 juli 2004 22:34 schreef mschol het volgende:

heb jij toevallifg een goede nederlandse uitleg over rexexp in php???
Nee, ik moet me ook zien te redden met de engelse.
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 22:52:35 #195
1972 Swetsenegger
Egocentrische Narcist
pi_20653140
quote:
Op donderdag 15 juli 2004 22:47 schreef Light het volgende:

]Dat wordt dan ook vertaald naar een mailadres. Inclusief die 09, dus een werkend adres wordt het niet.
Dat doet mijn code ook bedenk ik me nu.

Tis ondertussen te laat voor diepzinnige regexp overpeinzingen
Bedankt voor je hulp!

-edit- maar als je na die punt na de apestaart de cijfercombo weglaat klopt het wel
pi_20653211
quote:
Op donderdag 15 juli 2004 22:52 schreef Swetsenegger het volgende:

[..]

Dat doet mijn code ook bedenk ik me nu.
Deze niet:
$invoer = preg_replace("/([A-Za-z0-9._-]+@[-A-Za-z0-9]+(\.[-A-Za-z0-9]+)*\.[A-Za-z]{2,4})/i",'<a href="mailto:\1">\1</a>',$invoer);
quote:
Tis ondertussen te laat voor diepzinnige regexp overpeinzingen
Bedankt voor je hulp!
Graag gedaan
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 22:57:00 #197
1972 Swetsenegger
Egocentrische Narcist
pi_20653268
quote:
Op donderdag 15 juli 2004 22:55 schreef Light het volgende:

[..]

Deze niet:
$invoer = preg_replace("/([A-Za-z0-9._-]+@[-A-Za-z0-9]+(\.[-A-Za-z0-9]+)*\.[A-Za-z]{2,4})/i",'<a href="mailto:\1">\1</a>',$invoer);
oe... dat vetgedrukte ontgaat me nu ff...
Morgen
pi_20653291
quote:
Op donderdag 15 juli 2004 22:52 schreef Swetsenegger het volgende:

-edit- maar als je na die punt na de apestaart de cijfercombo weglaat klopt het wel
Dan zou het misgaan als er na de apestaart iets staat als mail.123swets.com
  FOK!-Schrikkelbaas donderdag 15 juli 2004 @ 23:03:46 #199
1972 Swetsenegger
Egocentrische Narcist
pi_20653453
$invoer = preg_replace("/(www\.[A-Za-z0-9._-\/~]\.[A-Za-z]+)/i",'<a href="http://\1" rel="external">\1</a>\1',$invoer);

Volgens mij pak ik hier alles mee tot en met .co.uk en .com.tw enzo...

toch?
pi_20653524
quote:
Op donderdag 15 juli 2004 22:57 schreef Swetsenegger het volgende:

[..]

oe... dat vetgedrukte ontgaat me nu ff...
Morgen
Daarmee dwing je af dat er na de laatste punt in het mail adres 2 t/m 4 letters volgen. Geen cijfers of andere vreemde tekens, alleen letters. Da's dus voor het top level domain, als .nl, .com of .info.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')