[php] reguliere expressies

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
grrr ik wordt helemaal gek van die reguliere expressies....

wat ik probeer te doen is om allereerst alles tussen <> haakjes eruit tehalen, uit een string, dus dacht ik


$test = ereg_replace("<.*>", "" , $test);
een punt vergeten :(

niet dus... waarom mag joost weten (of iemand anders mag ook wel :) )

en daarna probeer ik om bijvoorbeeld [ b] om te laten zetten in <b> maarja als iemand dan hoofdletters gebruikt dan doet ie het niet.... dus dachtik: (?i) gebruiken...:
PHP:
1
2
$test2 = ereg_replace("[(?i)b]", "<b>", $test2);
$test2 = ereg_replace("[(?i)\\b]", "</b>", $test2);

maarnu krijg ik echt heel veel rotzooi...hij vervangt bijvoorbeeld ook alle i's
wie ziet mijn fout?

[ Voor 34% gewijzigd door hobbeldebobbel op 09-03-2004 23:01 ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 17-09 13:27
en als je het nou doet met eregi_replace :?
Dat is case insensitive :D

http://nl2.php.net/manual/nl/function.eregi-replace.php

Acties:
  • 0 Henk 'm!

Verwijderd

Er als je het nu eens in 1x doet
PHP:
1
$message = preg_replace("/(\\[b\])(.*)(\\[\/b\])/Ui", "<strong>$2</strong>", $message);


Dit soort regex'en staan er overigens genoeg op dit forum.

[ Voor 15% gewijzigd door Verwijderd op 09-03-2004 23:04 ]


Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
dat ze op het forum staan allah...maar ik wil weten wat ik dan kopieer...
dus die laatste ga ik even ontrafelen hoor:
correct me if im wrong
die /Ui achteraan je regexp betekent dat dat hij niet moet letten op hoofdletters?
maar die is voor??
hij is opgebouwd uit: /()()()
[ karakters moet je escapen met en \ zelfde geld voor een /
de .* zoals hierboven staat voor "alles"
alleen die $2 is dat voor wat er in het tweede () staat?
en als ik nu harde enters wil filteren? is daar ook een teken ofsow voor?

[ Voor 10% gewijzigd door hobbeldebobbel op 09-03-2004 23:18 ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

Verwijderd

kijk even naar drm's tutorial

Acties:
  • 0 Henk 'm!

Verwijderd

Of even dit wereldprogramma downloaden :).

Of deze link bekijken, vindt ik zelf wel erg kort en bondig:
www.sitemasters.be

Succes, het is inderdaad vrij lastig onder de knie te krijgen maar als dat gelukt is is het ontzettend handig.

Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
dank u ! daar heb ik veel aan.. ik zie nu ook waarom ik soms problemen heb: (.*) is alles BEHALVE een regel einde
als ik dan dit heb:
code:
1
2
3
[sub]
dit is een subkop
[/sub]

dan wil
/(\\[sub\])(.*)(\\[\/sub\])/Ui
natuurlijhk niet werken :)

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Dan moet je even de s-modifier er aan plakken. ;)

.edit: mjax idd. :P

[ Voor 10% gewijzigd door RedRose op 10-03-2004 15:49 ]

Sundown Circus


Acties:
  • 0 Henk 'm!

  • mjax
  • Registratie: September 2000
  • Laatst online: 15:59
hobbeldebobbel schreef op 10 maart 2004 @ 15:39:
dank u ! daar heb ik veel aan.. ik zie nu ook waarom ik soms problemen heb: (.*) is alles BEHALVE een regel einde
als ik dan dit heb:
code:
1
2
3
[sub]
dit is een subkop
[/sub]

dan wil
/(\\[sub\])(.*)(\\[\/sub\])/Ui
natuurlijhk niet werken :)
/s achter de preg reguliere expressie stoppen en het zou wel moeten werken

Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
ok that worked, had er al omheen gewerkt, gewoon twee aparte preg_replaces gemaakt, eentje voor [ sub] en eentje voor [ /sub]

maar als ik nou een bepaalde waarde op wil slaan in een php variabele
onderstaande regexp zorgt ervoor dat hij wel de goede waarde eruit haalt.... zover kom ik dan nog wel
[code]
preg_replace("/(\\[foto)([0-9]+)(\])/Ui", "$2", $message);
[/code]
dit vervangt wel de hele tag met het cijfer dat achter het woord [fotoXX] staat maar hoe kan ik die vervangen voor een PHP variabele?
[code]
$message = preg_replace("/(\\[foto)([0-9]+)(\])/Ui", "<?$fotoaantal=$2?>", $message);
[/code]

dit zorgt ervoor dat het vervangen wordt voor:
<?=14?>
niet echt de bedoeling


edit:
gevonden:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
if(ereg("(\\[foto)([0-9]+)(\])",$message,$aantal))
                        {
                            ?>
                            <script>alert("gevonden<?=$aantal[2]?>")</script>
                            <?
                        }else{
                            ?>
                            <script>alert("er is iets fout")</script>
                            <?
                        };
?>

[ Voor 62% gewijzigd door hobbeldebobbel op 10-03-2004 16:16 ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet

Pagina: 1