---
title: "Splitta en stor textsträng?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/147339-splitta-en-stor-textsträng"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "nakoz"
published: "2006-05-26T11:58:15.000Z"
updated: "2006-05-26T19:57:50.000Z"
replies: 7
views: 375
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/147339-splitta-en-stor-textsträng"
---

# Splitta en stor textsträng?

## #1 — nakoz, 2006-05-26T11:58Z

Jag har en textsträng på typ 5000 tecken som jag tänkte splitta upp i lite mindre strängar och mata in i en databas.

Det är HTML-kod som jag gjort i ett tidigare projekt, men nu ska vi modernisera lite.

Jag ska hämta värden i en value-tagg, ser ut såhär;
value="hejhej - 1231"
hejhej kan vara "hejsan hej" också, men 1231 är alltid 4 siffror.

Jag har alltså typ 150st value-taggar som jag ska hämta värdena ifrån och slänga in i två olika fält i en databas.

Alltså, borde vara nån FOR EACH ITEM-variant efter splitten?

Hur göra? 

Mvh,

Permalänk: https://www.webforum.nu/p/147339

## #2 — nakoz, 2006-05-26T11:58Z

Just de, kan addera det, att de är BARA i value strängen som "-" finns med. så det kan ju vara ett litet riktmål?! =)

Permalänk: https://www.webforum.nu/p/1820679

## #3 — emission, 2006-05-26T14:55Z

Använd RegExp i stället

En lämplig pattern borde kunna se ut så här:

```
rxp.Pattern="value=\""([^\""]+?) - (\d{4})\"""
```

Permalänk: https://www.webforum.nu/p/1820729

## #4 — nakoz, 2006-05-26T16:13Z

Tack emission, nu har jag löst det med ditt regexp.. 
Lite pill å så, men en välinvesterad timme.. 

```
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = True
	
objRE.Pattern="value=\""([^\""]+?) - (\d{4})\"""
Set myMatches = objRE.Execute(strText)

For each item in myMatches
	rattStr = Right(item.Value,item.Length-7)
	rattStr = Left(rattStr,Len(rattStr)-1)

	myarray = Split(rattStr, " - ")
	prod = Trim(myarray(0))
	art = Trim(cInt(myarray(1)))

	SQL = "INSERT INTO [produkter] ([pNamn], [pArtnr]) VALUES ('" & prod & "', " & art & ")"
	cn.Execute SQL
Next
```

Kanske inte var riktigt så jag skulle nyttja det, men jag tänkte att jag skulle försöka lösa det på egen hand, dessutom så var det här en funktion som jag bara skulle köra en gång, därav har jag inget intresse i att optimera den (men feedback på lösningen tar jag självklart åt mig då jag gör liknande grejer i framtiden).

Permalänk: https://www.webforum.nu/p/1820752

## #5 — emission, 2006-05-26T18:54Z

Helt OK!

Feedback:

Med hjälp av parentesavgränsningarna i regexpen så kan man plocka ut "prod" och "art" väldigt enkelt.

```
For each item in myMatches
	
	prod = item.submatches(0)
	art = item.submatches(1)

	SQL = "INSERT INTO [produkter] ([pNamn], [pArtnr]) VALUES ('" & prod & "', " & art & ")"
	cn.Execute SQL
Next
```

Permalänk: https://www.webforum.nu/p/1820768

## #6 — nakoz, 2006-05-26T18:56Z

klockrent emission, så skulle jag gjort. 
var alldeles för länge sen jag höll på med regular expressions (och arrayer också för den delen), så därav hajade jag inte att paranteserna gav mig rätt värden.

Du gav mig koden på silverfat, å ändå skulle jag till å börja böka med den ;)

Permalänk: https://www.webforum.nu/p/1820769

## #7 — nakoz, 2006-05-26T18:59Z

en fråga bara... 
kan du vad alla små fnuttar och bokstäver i pattern-uttrycket gör i huvudet eller kollar du referens över dem? \*hoppas på det sistnämnda\* =)

Permalänk: https://www.webforum.nu/p/1820770

## #8 — emission, 2006-05-26T19:57Z

Ledsen, men de sitter i huvudet.... :)

Permalänk: https://www.webforum.nu/p/1820786

---

Tråden på webben: https://www.webforum.nu/amne/asp/147339-splitta-en-stor-textsträng
