The_HulkMedlem sedan juni 20031 837 inlägg Skulle behöva lite hjälp med preg_match och lookahead '(?'
Jag vill se om det finns ett tab-tecken och om det finns ett tab-tecken så vill jag fånga upp resten av raden.
Det finns alltså andra saker innan tab-tecknet som fångas upp av det reguljära uttrycket.
har sett att lookahead är (? men vet inte hur jag ska få ihop resten.
Tack på förhand!
/red
blev visst lite skrivfel.
inte "gånga" utan "fånga"
är rättat nu
pettssonMedlem sedan jan. 20021 122 inlägg Hur menar du med "gånga upp"?
Om du ska fånga allt innan ett tab-tecken så kör något sånt här:
$minString = "Ett litet test\tEfter tabben";
preg_match("/\w*(?=\\t)/", $minString, $resultat);
print $resultat[1];
Detta kommer skriva ut "Ett litet test" och spara det i arrayen $resultat.
The_HulkMedlem sedan juni 20031 837 inlägg jag ville fånga upp det som kom efter tab-tecknet om det nu fanns något sådant på raden.
en lösning jag testa som fungerade för tillfället var
preg_match("/.*\t.*\t.*(\t.*)?/", $data $match);
men ville först lösa det med lookahead men kom inte på hur det skulel lösas.
Alltså det är "(\t.*)?" som jag skulel vilja skriva om med lookahead om det gick. inte för att det spelar någon större roll just nu men hade varit roligt att veta om det gick.
pettssonMedlem sedan jan. 20021 122 inlägg Jag antar att du har paranteser för att du egentligen bara är intresserad av just den text som kommer efter tredje tabben? Isf kan du använda look-behind istället för att slippa få med det i fångsten.
preg_match("/(?<=\w*\t\w*\t\w*)\t\w*/", $data, $match);
Om du vet innehållet mellan tabbarna så undvik gärna . eftersom det är lätt att fånga för mycket. I min kod så använder jag \w istället, men om du inte har ren text så är det kanske bättre med en klass, eller i värsta fall då punkt.