Hej på Er! Tjena, jag kan inte Javascript överdrivet bra, inte heller regular expression vilket tenderar att bli lite krångligt ibland. Tack för hjälpen... Vill hitta samtliga positioner för en specifik sträng
Jag vill med hjälp av regular expresisons hitta samtliga träffars positioner uti en sträng. Det jag vill ha tag i är alltså på vilken plats i strängen som den hittades ungefär som IndexOf(). Positionerna kan med fördel lagras i en array.
Tack på förhand
MalinSv: Vill hitta samtliga positioner för en specifik sträng
Ett alternativ till att använda regexp är att loopa igenom strängen själv... här har du psuedokoden för hur jag menar:
<code>
// skapa en array, och en tom sträng om du vill behålla strängen du ska parsa igenom...
arraylist positions = new arraylist;
string bucket = "";
// detta är strängen du vill parsa...
string mystring = "A very long string...";
// loopa...
while (true) {
// ta ut positionen för det första tecknet...
position = mystring.IndexOf(<stringpattern>);
// kolla om det fanns...
if (position != -1) {
// lägg till positionen i arrayen...
positions.add(position);
// spara undan det du har parsat hittills i din sträng...
bucket += mystring.substring(0, position);
// "skär" bort det du har parsat hittills, så vi inte parsar igen...
mystring = mystring.substring(position);
} else {
// om det inte fanns så finns det inget mer att göra...
break;
}
}
// alla positioner bör nu finnas i variabeln positions, om längden är 0 så fanns det inga strängar som matchade...
</code>
Tänk på att jag inte känner till vissa special syntax osv i javascript så du får antagligen mecka lite... Håller med om att det hade varit enklare att bara skriva array arr = regexp(<pattern>, <string>); men jag vet inte om det går =)
hoppas det hjälper nått iaf... (Finns väll antagligen nån snyggare lösning! :P)Sv:Vill hitta samtliga positioner för en specifik sträng
Jag löste det på ett liknande sätt. Men är övertygad om att det finns en snyggare lösning. Men jag får fila lite på det så blir det nog hyfsat ialf :)