webForumDet fria alternativet

Hämta strängar ur sträng med RegEx...?

PHP

4 svar · 362 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Frågan#1

Jag har en sträng som kan se ut enligt följande:

$str = "Bla bla bla {test.php} bla bla bla {lalala.php} bla bla bla..."

Nu vill jag plocka ut alla "filnamn", alltså de som står innanför { och }. Filnamnen ska sparas i en array, i detta fall:

$arr[0] = "test.php";
$arr[1] = "lalala.php";

Hur ska jag göra? Jag kommer inte på något bra sätt alls...

Tack!

Medlem sedan juni 20019 519 inlägg
#2

om det alltid är .php:

ereg('\{([[:alnum:]]_+\.php)\}', $subject, $regs)

Så har du arrayn i $regs

Medlem sedan mars 20007 896 inlägg
#3

Använd preg_match_all().

preg_match_all("/\{(.*?)\}/", $str, $matches);
var_dump($matches[1]);

Edit, nu var jag lite långsam. Men det är faktiskt ereg() också om man jämför med preg_match*() - som oftast är en snabbare lösning. Innan PHP5 får man också bara ut max 10 träffar om man använder ereg().

Medlem sedan juni 20019 519 inlägg
#4

Eftersom jag kan 0 om PHP så använde jag bara RegexBuddy för att få ut uttrycket för att få matchningar ;) ingen aning om ereg är dåligt eller inte ;)

Medlem sedan jan. 20051 130 inlägg
#5

Tack!

279 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
153 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)