Kom ihåg mig?
Home Menu

Menu


Regular expressions

Ämnesverktyg Visningsalternativ
Oläst 2008-06-30, 16:23 #1
Innocast Innocast är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 688
Innocast Innocast är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 688
Hej!

Jag är verkligen inte bra på regexp. men jag håller på att lära mig :-)

Någon som har lust att hjälpa mig med följande:

Om någon av nedanstående påståenden stämmer ska ordet sättas inom [i]-taggar:

1. Ordet är mellan <h1> och </h1>
2. Ordet är det SISTA ordet i meningen som står mellan <h1> och </h1>

Exempel:

Jag är <h1>en snäll häst</h1>!

Resultat:

Jag är <h1>en snäll häst</h1>!

Kort och gott, det sista ordet inom <h1> taggar ska sättas till em :-)
Innocast är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-30, 16:52 #2
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Typ:

s!<h1>([^<]*)(\p{L}+)</h1>!<h1>\1\2</h1>!g
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-01, 09:07 #3
Innocast Innocast är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 688
Innocast Innocast är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 688
Följande kod fungerar inte... Nog att innehållet i $replacement är fel, får även felmeddelandent:

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in ----- on line 9

Kod:
$pattern = "s!<h1>([^<]*)(\p{L}+)</h1>!<h1>\1<em>\2</em></h1>!g";

$string = '<h1>Hejsan du</h1> hahahahah <h1>wee</h1> gigigigigi <h1>apa hål</h1> dfjjsdfjk <h1>hej apa</h1>';

$replacement = '${1}1,$3';

echo preg_replace($pattern, $replacement, $string);
Innocast är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-01, 12:38 #4
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Citat:
Originally posted by Subcura@Jul 1 2008, 09:07
Följande kod fungerar inte... Nog att innehållet i $replacement är fel, får även felmeddelandent
Du avslöjade inte vilket språk du tänkt använda i din fråga så jag gav ett exempel i perl.

Prova med
echo preg_replace('/<h1>([^<]*)(\pL+)<\/h1>/ui', "<h1>$1$2</h1>", $string);
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-01, 13:27 #5
Innocast Innocast är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 688
Innocast Innocast är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 688
Ah, självklart... Sorry för den missen. Men som du förstod så var det PHP :-)

Testade med följande, som tyvärr inte ekade ut något

Kod:
$string = '<h1>Hejsan du</h1> hahahahah <h1>wee</h1> gigigigigi <h1>apa hål</h1> dfjjsdfjk <h1>hej apa</h1>';
echo preg_replace('/<h1>([^<]*)(\pL+)<\/h1>/ui', "<h1>$1<em>$2</em></h1>", $string);
exit();
Innocast är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-01, 18:25 #6
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Citat:
Originally posted by Subcura@Jul 1 2008, 13:27
Testade med följande, som tyvärr inte ekade ut något

Kod:
$string = '<h1>Hejsan du</h1> hahahahah <h1>wee</h1> gigigigigi <h1>apa hål</h1> dfjjsdfjk <h1>hej apa</h1>';
echo preg_replace('/<h1>([^<]*)(\pL+)<\/h1>/ui', "<h1>$1<em>$2</em></h1>", $string);
exit();
Provade just med
Kod:
$string = '<h1>Hejsan du</h1> hahahahah <h1>wee</h1> gigigigigi <h1>apa hål</h1> dfjjsdfjk <h1>hej apa</h1>';
echo preg_replace('/<h1>([^<]* )?(\pL+)<\/h1>/ui', "<h1>$1<em>$2</em></h1>", $string);
som fungerade som tänkt. (Obs. regexpet ändrat lite, kan säkert också optimeras.)

Vilken php-version har du? Varför exit på slutet? Vilken teckenkodning använder du?
martine är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 11:36.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017