webForumDet fria alternativet

preg_replace hjälp

10 svar · 780 visningar · startad av paddan

paddanMedlem sedan dec. 2002299 inlägg
#1

Hej,
Jag blir aldrig klok på de här reg. expressions så jag behöver lite hjälp.
Jag skulle vilja leta upp [21 min] och ändra de till, 21<br />min.

Att man ska använda preg_replace är väl ganska klart men jag blir inte klok hur jag ska göra resten...

/M

drewMedlem sedan mars 2007845 inlägg
#2
str_replace('[21 min]', '21<br />min', $str);

borde väl fungera lika bra om det är så där enkelt?

paddanMedlem sedan dec. 2002299 inlägg
#3

Jo fast det kan lika bra vara [41 min], därför måste jag använda reg exp

SPiNMedlem sedan mars 20007 896 inlägg
#4

Är det alltid två siffror? Eller kan det vara en (1) siffra också?
Två siffror:

$str = preg_replace('/\[(\d{2}) ([a-z]{3})\]/i', '$1<br />$2', $str);

En siffra:

$str = preg_replace('/\[(\d{1,2}) ([a-z]{3})\]/i', '$1<br />$2', $str);
paddanMedlem sedan dec. 2002299 inlägg
#5

Hej,
Tack för hjälpen senast men nu behöver jag hjälpa igen.

Behöver ett regular expression för detta:
[54] En mening med massa ord [54] alt, [5] En mening med massa ord [4]

/M

voigtann1Medlem sedan juni 20019 519 inlägg
#6

Hur menar du där?

[54] En mening med massa ord [54]

Där numret är samma från första och sista [] ?
Eller om det är:

[54] en mening med massa ord
[54] alt
[5] en mening med massa ord

???

paddanMedlem sedan dec. 2002299 inlägg
#7

Jag menar så här:
[x1] en mening med massa ord [x2]

Jag menar att x1 läggs i $1, "en mening med massa ord" läggs i $2 och x2 läggs i $3

voigtann1Medlem sedan juni 20019 519 inlägg
#8

x1 behöver inte vara samma som x2?

paddanMedlem sedan dec. 2002299 inlägg
#9

voigtann1 skrev:

x1 behöver inte vara samma som x2?

Nix....dem kommer vara olika siffror!

voigtann1Medlem sedan juni 20019 519 inlägg
#10

jag gissar att det är max 0-99 som gäller fortfarande?

\[(\d{1,2})\](.*?)\[(\d{1,2})\]
paddanMedlem sedan dec. 2002299 inlägg
#11

Jepp....
Funkar klockrent.

Här kommer koden i totale för att andra kanske behöver samma hjälp:

$temp_text = preg_replace('/\[(\d{1,2})\](.*?)\[(\d{1,2})\]/i', '<span class="number_first">$1</span><span class="text">$2</span><span class="number_last">$3</span>', $temp_text);

Tack för hjälpen...Super nice!

132 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)