Regex gebruiken voor stijl toepassen

Status
Niet open voor verdere reacties.

GhastlyMIB

Gebruiker
Lid geworden
5 jun 2007
Berichten
368
Hey,

ik ben pas begonnen met Regular Expressions.
De basis is vrij simpel, maar nu kom ik ergens niet uit, terwijl het niet zo heel moeilijk moet zijn.

Ik probeer dus d.m.v. regex de waarde ... om te zetten naar <strong>...</strong>
Dit werkt.. Maar als ik er een ... tussen zet, dan werkt alleen de <i> nog. Niet die andere.

Dus er moet naar een volgende gezocht worden zonder dat die zich bemoeid met de .
Dit is wat ik heb:
PHP:
$input = "Tekst [b]Dik [u]en onderstreept[/u][/b]";
// [b]...[/b] => <strong>...</strong>
$input = preg_replace("/\[b\](^(\[\/b\])*)\[\/b\]/", '<strong>$1</strong>', $input);
// [i]...[/i] => <i>...</i>
$input = preg_replace("/\[i\]([^\[]*)\[\/i\]/", '<i>$1</i>', $input);
echo $input;

De manier had ik als eerste maar daar zit dus die fout in als ik er een andere tag inzet.
De manier heb ik aangepast om die werkend te krijgen maar het lukt niet.

Ik hoop dat het zo duidelijk is. Zo niet, vraag aub, dan geef ik meer uitleg over de onduidelijkheden.

Gr,
Mathijs
 
Dit is nu opgelost.. Maar nu zit ik met iets anders.

Is het mogelijk om met Regular Expressions meerdere regels door te lopen?
Code:
[ list]
- Item 1
- Item 2
[ /list]
list zonder spacie natuurlijk ;)

Wat dit dus moet worden is:
Code:
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>

ik heb nu deze regex code, maar er komt er maar 1 uit, en niet allemaal...
Code:
\[list\][\s\S]*\n(-[ ]?.*)\n[s\S]*\[\/list\]

Bedankt,
Mathijs
 
Zo?

Code:
(\[list\])([^\s]*)(-[]?.*)([^\s*]*)(\[\/list\])

Verget niet ronde haken om die list-dingen te zetten, anders kun je ze niet replacen door resp. <ul> en </ul>.
 
Laatst bewerkt:
Bedankt maar helaas, die werkt niet.
Als ik 'm iets aanpas werkt die voor een deel.
Code:
(\[list\])([\s]*)(-[ ]?.*)([\s*]*)(\[\/list\])

Nu vind die maar 1 item als die in de lijst staat. Als er meerdere instaan, dan vind die ze niet.
Code:
[ list]
- Regel 1
- Regel 2
[/ list]
vind die ze niet..

Code:
[ list]
- Maar 1 regel
[/ list]
vind ie ze wel.

Gr,
Mathijs
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan