Kan någon guru förklara hur jag skall göra för att hitta:
<?t(12)?> eller t(12) i en sträng.
Det jag har nu, [t]+\([0-9]+[\)] hittar även test(12) och det vill jag inte...
Någon som vet?
// Nippe
18 svar · 329 visningar · startad av nkrantz
Kan någon guru förklara hur jag skall göra för att hitta:
<?t(12)?> eller t(12) i en sträng.
Det jag har nu, [t]+\([0-9]+[\)] hittar även test(12) och det vill jag inte...
Någon som vet?
// Nippe
Det saknas en ( och jag får inte in den någonstans så att det funkar... Eller?
(<\?|\s)t\(\d+\)(\?>|) skulle det vara tror jag...
Får det inte att funkar:
$content = "hej hopp t(12) hejekje";
if (ereg("(<\?|\s)t\(\d+\)(\?>|)", $content))
{
echo "match";
}
else
{
echo "no match";
}
Den säger no match. Men om jag har errors påslaget så säger den:
Warning: ereg(): REG_EMPTY in /XXX/XXX/XXX/article.pages.php on line 47
Vad göra?
Kan testas här:
http://www.webeye.nu/default2.asp?que=asp/regexptester.asp
Jo, men pattern funkar, men jag får inte min kod att funka... Så, det verkar om om jag använder fel funktion (ereg) eller nåt sånt...
Och med preg_match() då?
$content = "hej hopp t(12) hejekje";
if (preg_match("(<\?|\s)t\(\d+\)(\?>|)", $content)) {
echo "match";
} else {
echo "no match";
}
Med preg_match blir det: Warning: Unknown modifier 't' in /home/nap46/wwwserver/ac/article.pages.php on line 47
Vill du kolla om mönstret finns, eller vad det innehåller ?
Kan det finnas på flera ställen i texten ?
Kom ihåg backslasharna ;)
Matte: Jag vill kolla om mönstret finns, det kan finnas på flera ställen.
Jesper T: Japp ;) (Fast om man kör KOD ist för PHP så funkar det.. verkar det som, för mina backslashs funkar i mitt inlägg ovan)
Testa:
if (preg_match_all("/(<\\?|\\s)\\t(\\d+)(\\?>|)/", $content, $matches)) {
$matches är en tvådimensionell array.
Ja, ntg mysko är det. När jag bifogade i [kod]-taggar så försvann de ju.
Skall kollas.
Varför säger den att jag inte har någon reg?
Warning: ereg(): REG_EMPTY
Jag har ju en reg som funkar!!!
$pattern = "(<\?|\s)t\(\d+\)(\?>|)";
$content = "hej hopp <?t(12)?> hejekje t(33)";
if (ereg ($pattern, $content))
{
echo "found";
}
else
{
echo "not found";
}
Om jag ändrar $pattern till hej så funkar det... Pattern går igenom testen på webeye...
// Nippe
Ibland undrar jag var jag lägger min hjärna! :x
$pattern = "/(<\?|\s)t\(\d+\)(\?>|)/";
$content = "hej hopp <?t(12)?> hejekje";
if (preg_match ($pattern, $content))
{
echo "found";
}
else
{
echo "not found";
}
Blev lite galet i tidigare inlägg.
if (preg_match_all("/(<\\?|\\s)t\\(\\d+\\)(\\?>|)/", $content, $matches)) {