WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   preg_match varför blir det såhär? (https://www.wn.se/forum/showthread.php?t=1048334)

Muqito 2011-05-22 22:08

preg_match varför blir det såhär?
 
Hejsan alla på WN!

Hade tänkt att plocka ut data från den här:

operatorka svar nr5 hejsan allihopa vad gör ni

då ser matches ut såhär:

Citat:

$matches[0] = operatorka svar nr5 hejsan allihopa vad gör ni
$matches[1] = nr5
$matches[2] = hejsan allihopa vad gör ni
$matches[3] = i
Jag använder mig av den här som jag skrev själv (försöker lära mig):

^operatorka\x20svar\x20(nr+[0-9][0-9]{0,2})+\x20((.|\x20)+)$

Men vad jag inte förstår, varför plockar den även ut sista bokstaven?

EDIT: Är det för att den skriver dit den sista matchande parantesen igen?

Men hur ska man annars matcha alla "ord" eller så innan mellanrum? Vet ni kanske något sätt?

pelmered 2011-05-23 17:20

Testa att avsluta med "\x20(.+)$" istället. Då borde du inte få ut den sista bokstaven.

Ja precis. Den fångas av parentesen inuti den andra också.

Muqito 2011-05-24 18:43

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20406368)
Testa att avsluta med "\x20(.+)$" istället. Då borde du inte få ut den sista bokstaven.

Ja precis. Den fångar parentesen inuti den andra också.


Underbart, tack så mycket :)

qson 2011-05-25 09:11

Tänk på att punkt motsvarar alla tecken, så (.|\x20) matchar valfritt tecken eller ett mellanslag.


Alla tider är GMT +2. Klockan är nu 07:43.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson