Archief - PHP: regular expressions / vervangen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

nickman

Legacy Member
Hey,
Ik wil dus volgende stukken laten vervangen:
Code:
<td><br />
<tr><br />
<table><br />
Door dit:
Code:
<td>
<tr>
<table>

Ik heb al vanalles geprobeerd en hij wilt het dus niet doen...
Het probleem is dat er na de td, tr of table ook nog een aantal dingen mogen staan en die moet hij dus behouden...
Ik had het volgende gemaakt:

PHP:
$bb_tekst = eregi_replace("<td(.*)><br />", "<td\\1> ",$bb_tekst);
$bb_tekst = eregi_replace("<tr(.*)><br />", "<tr\\1> ",$bb_tekst);
$bb_tekst = eregi_replace("<table(.*)><br />", "<table\\1> ",$bb_tekst);

Maar hij weigert dit te doen :).

please help!!

Obliv`

Legacy Member
ge hebt toch maar 1 expr nodig?

vervang gewoon <br /> door NULL

nickman

Legacy Member
nee, wan't ni alle <br /> mogen weg he... alleen die die achter die tags staan wil ik weg

killgore

Legacy Member
$bb_tekst = preg_replace("#<td(.*?)><br />#i", "<td\\1> ",$bb_tekst);

use fucking preg!

de andere 2 kunde hiermee ook wel vinden.

nickman

Legacy Member
merci voor de oplossing, beetje vriendelijker mocht natuurlijk altijd maarje :).

Enuh, wa is verschil tss preg_replace en eregi_replace ???

Heb effe gen op PHP.net maar ni echt veel weizer uit geworde...

killgore

Legacy Member
nickman zei:
merci voor de oplossing, beetje vriendelijker mocht natuurlijk altijd maarje :).

Enuh, wa is verschil tss preg_replace en eregi_replace ???

Heb effe gen op PHP.net maar ni echt veel weizer uit geworde...
was allessinds niet de bedoeling onvriendelijk over te komen, alleen beke sarcastisch, beetje mislukt :p, kan ook zijn omdak minder goe exame had vandaag ;).

preg -> sneller, uitgebreider (lees algemener), gebruikt "std" perl regexes.
ereg -> trager, gebruikt iets beperktere regexes.

edit: blijkbaar vergeten te posten: u probleem was dat die .* niet greedy was, heb ik dus gedaan door dat vraagteken erachter te plaatsen, greedy -> neemt alles mee, ungreedy -> tot em volgende ding tegenkomt dat aan pattern voldoet ( bij u zou hij tot de laatste ><br /> in het document gaan denk ik).

nickman

Legacy Member
np M8 ;).

Kan ik gewoon al mijn ereg dan ook vervangen door preg?

Ik ga het sebiet is testen, nog effe wiskunde aan't doen voor morgen :|
-------------
Edit:
Hebbet al getest voor die tabel tags en hij doet het :D.
thx!

Heb nog ni al mijn ereg vervangen door preg :D

killgore

Legacy Member
ereg("regex") wordt meestal preg("#regex#") of preg("/regex/") of nog andere delimiters, ma dees zijn 2 meest gebruikte.
ik prefereer # omdat ge dat zelden gebruikt in uw regex zelf en dus niet moet gaan escapen (als je / gebruikt en je wilt / in de regex zelf moet je dit natuurlijk escapen om aan te geven dat het nog niet gedaan is).

nickman

Legacy Member
K, thx, ik zal me er is mee bezig houden ;).
Wordt soms nogal heel onoverzichtelijk die reguliere expressies :s, me al die \\\ dinges :D

killgore

Legacy Member
nickman zei:
K, thx, ik zal me er is mee bezig houden ;).
Wordt soms nogal heel onoverzichtelijk die reguliere expressies :s, me al die \\\ dinges :D
die \\\ dinges hebde nie vaak nodig :p.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan