---
title: "ta ut strängar ur strängar..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/133336-ta-ut-strängar-ur-strängar"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Bjuris"
published: "2005-08-26T13:38:53.000Z"
updated: "2005-08-29T06:42:38.000Z"
replies: 5
views: 265
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/133336-ta-ut-strängar-ur-strängar"
---

# ta ut strängar ur strängar...

## #1 — Bjuris, 2005-08-26T13:38Z

Sitter och skall göra en ändring i ett gammalt asp system och minnet är kort.

Jag har en sträng som ibland innehåller antal och ibland så innehåller den vikt och oftast så strår de tillsammans.

enligt
0001 pieces , 0000040 kg , status och annan text
0001 pieces  status och annan text   \<--- notera inget komma!
0000040 kg , status och annan text

pieces = altid 4 karaktärer.
kg = 7 karaktärer + kg

Detta formateras via en gammal dll som vi inte har kvar koden till och jag har ingen lust att koda om den då den är väldigt omfattande.

Till problemet.

Jag vill inte visa vikten över huvud taget sen så vill jag ha bort nollorna före antal pieces.

Hur skall jag göra? mid? left? regExp??

mycket tacksam för tips och ideer.

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

## #2 — Jesper T, 2005-08-26T14:45Z

Det kanske går att göra med någon snygg regexp men detta är iaf ett litet försök.

```
Dim str, pieces, kg
str="0001 pieces , 0000040 kg"
If instr(str,"pieces") > 0 then
	pieces = split(str,"pieces")
	Response.write FormatNumber(left(pieces(0),4),0) &" st "
End if
If instr(str,"kg") > 0 then
	kg = split(str,"kg")
	Response.write FormatNumber(right(kg(0),7),1) &" kg "
End if
```

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

## #3 — Jesper T, 2005-08-26T15:00Z

Alternativt:

```
str="0001 pieces , 0000040 kg"
instrpieces = instr(str,"pieces")
If instrpieces > 0 then
	Response.write FormatNumber(mid(str,instrpieces-5,4),0) &" st "
End if
instrkg = instr(str,"kg")
If instrkg > 0 then
	Response.write FormatNumber(mid(str,instrkg-8,7),1) &" kg "
End if
```

Eller, skjut och titta:

```
On error resume next
	Response.write FormatNumber(mid(str,instr(str,"pieces")-5,4),0) &" st "
	Response.write FormatNumber(mid(str,instr(str,"kg")-8,7),1) &" kg "
```

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

## #4 — Bjuris, 2005-08-28T20:44Z

Problemet är att vikten inte alltid är 000040 och antal inte alltid är 0001, de varierar hela tiden beroende på söksvar.

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

## #5 — Peter S, 2005-08-28T21:20Z

Ett regexp-försök:

```
dim rslt
dim re : re = new regexp

re.ignorecase = true
re.global = true

re.pattern = "\d{7}\skg(\s,)?"
rslt = re.replace([i]replaceString[/i], "")

re.pattern = "0*(\d+\spieces)(\s,)?"
rslt = re.replace(rslt, "$1")

set re = nothing
```

Ovan har jag antagit att datat finns i replaceString.

**Red./ Har redigerat in re.global = true ovan**.

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

## #6 — Bjuris, 2005-08-29T06:42Z

Bugar och bockar.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/133336-ta-ut-strängar-ur-strängar
