![]() |
php: splitta sträng mellan alfa och numeriskt
Hur gör jag bäst följande i php.
$string = "a1b12ccc3d44"; Jag vill splitta denna sträng mellan numeriska och ickenumeriska tecken, och få en array som ska se ut så här: $stringarray[0] = "a" $stringarray[1] = "1" $stringarray[2] = "b" $stringarray[3] = "12" $stringarray[4] = "ccc" $stringarray[5] = "3" $stringarray[6] = "d" $stringarray[7] = "44" Är usel på regex men gissar att det är vägen att gå. |
Citat:
|
Vet inte hur man lägger ihop det till en reg exp. Men kan du köra den två ggr så kan du använda.
(\D*) för a-z (\d*) för 0-9 |
Enklast är att använda preg_split:
Kod:
$stringarray = preg_split('/([0-9]+)/', $string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); |
Tack!
Jag har även fått ett annat förslag privat, som också fixar problemet. Kod:
preg_match_all("/([a-zA-Z]+|[0-9]+)/", $string, $stringarray); |
Skillnaden är väl att preg_match_all() skapar skapar subarrayer medan preg_splkit() gör det i en nivå. Se exempelkoden nedan. Jag är ingen stjärna på PHP men det var kul att testa i alla fall.
Kod:
<?php |
Citat:
|
Alla tider är GMT +2. Klockan är nu 07:23. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson