Just nu i M3-nätverket
Gå till innehåll

Regex-problem


Christoph

Rekommendera Poster

Hej,

 

jag har ett litet problem med en regular expression som jag har kämpat med i flera dagar nu. Mitt mål är att lokalisera alla förekomster i en sträng som börjar på "@e " (snabel-a e mellanslag) och som avslutar antingen mot ett @ (snabel-a) eller slutet av strängen.

 

$text = "@s Svensson@e Jan Erik @e Kalle@m Storagatan 1";

preg_match_all('/@e (.*?)($|@)/im', $text, $result);

 

returnerar "bara" Jan Erik, inte Kalle, eftersom @´et från "@e Kalle" är en del av regex-matchen från första matchen.

 

Någon som vet hur man kan lösa detta?

 

Stort stort tack!

 

Christoph

 

Länk till kommentar
Dela på andra webbplatser

Du komplicerar saker i onödan... Det här fungerar för mig:

$text = "@s Svensson@e Jan Erik @e Kalle@m Storagatan 1";
preg_match_all('/@e ([^@]*)/im', $text, $result);

Dvs, hitta "@e ", plocka därefter alla tecken utom @ (eller tills det tar slut, men det behöver man inte berätta i det här fallet).

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Du komplicerar saker i onödan...

Det är den känslan jag jämt bär med mig när det gäller regex´es...

 

Tusen tusen tack, funkar utmärkt!

 

Christoph

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...