---
title: "Söka ut artikelnummer ur sträng regexp #2"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/137212-söka-ut-artikelnummer-ur-sträng-regexp-2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2005-11-08T19:17:46.000Z"
updated: "2005-11-09T07:19:50.000Z"
replies: 20
views: 360
page: 1
pages: 2
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/137212-söka-ut-artikelnummer-ur-sträng-regexp-2"
---

# Söka ut artikelnummer ur sträng regexp #2

_Sida 1 av 2._

## #1 — devotion, 2005-11-08T19:17Z

Hej!

Har nu följande kod som söker ut artikelnumret ur en sträng:

```
strArticleName = request.Querystring("articleName")
strArticleNr = request.Querystring("articleNr")

dim re
set re = new regexp
re.pattern = "\d{8,}" 

dim m
set m = re.execute(strArticleName)

if m.count then
	Response.redirect "viewMtrl.asp?cmd=noEnumber"
else
   	re.pattern = "\d{7}"
   	set m = nothing

   	set m = re.execute(strArticleName)

   	if m.count then
      	strEnumber = m(0)
	Else  
		Response.redirect "viewMtrl.asp?cmd=noEnumber"
    end if
end if

set re = nothing
```

Hur gör jag för att modifiera den så att den först söker av strArticleName, finns det inget där söker den av strArticleNr...

Har försökta att brottas med if-satser men det blir bara pannkaka...

Hmm, kommer på fler funktioner efterhand....
Mvh Henrik

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

## #2 — emission, 2005-11-08T19:37Z

Om du sätter ihop strArticleName och strArticleNr, med ett mellanslag emellan, och kör den gamla funktionen på detta, så kommer du att hitta den första förekomsten, eller ingen alls.

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

## #3 — Peter S, 2005-11-08T19:37Z

Jag har gjort om proceduren en del:

```
dim re
set re = new regexp
re.pattern = "(\d{7})(\d*)?" 

set m = re.execute(strArticleName)

if m.count then
  if len(m(0).submatches(1)) > 0 then
    response.write "More than 7 consecutive numbers entered"
  else
    response.write m(0).submatches(0)
  end if
else
  response.write "Less than 7 consecutive numbers entered"
end if

set re = nothing
```

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

## #4 — devotion, 2005-11-08T20:59Z

Tja!

hmm, jag trodde jag började förstå deta här...

Den var ju jättefin Peter S, men hur fungerar det?

Och ska jag använda mig av emissions svar också?

Börjar bli lite förvirrad...

Mvh
Henrik

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

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

```
strArticleName = request.Querystring("articleName")
strArticleNr = request.Querystring("articleNr")

function searchArticle(art)
  dim re
  set re = new regexp
  re.pattern = "(\d{7})(\d*)?" 

  set m = re.execute(art)

  if m.count then
    if len(m(0).submatches(1)) < 1 then
      searchArticle = m(0).submatches(0)
      exit function
    end if
  end if

  searchArticle = ""
end function

dim s
s = searchArticle(strArticleName)

if len(s) = 0 then
  ' Testa strArticleNr
  s = searchArticle(strArticleNr)

  if len(s) > 0 then
    ' Numret existerar för strArticleNr
  else
    ' Numret existerar ej
  end if
else
  ' Numret existerar för strArticleName
end if
```

Testa att lägga in den kod som skall vara där jag lagt kommentarer, så får vi se vad som händer.  :)

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

## #6 — devotion, 2005-11-08T21:41Z

hmm, men var är variablen som innehåller numret? 

Innan så använde jag ju mig av:

```
if m.count then
      	strEnumber = m(0)
```

Mvh
Henrik

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

## #7 — Peter S, 2005-11-08T21:44Z

Den gestaltar sig i form av s.

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

## #8 — devotion, 2005-11-08T21:49Z

aha!  :r 

Ska testa med en gång!

Mvh
Henrik

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

## #9 — devotion, 2005-11-08T22:06Z

Jag är ledsen och trög.. men jag får inte ihop det...
Var ska raderna in...

```
Response.redirect "viewMtrl.asp?cmd=noEnumber"
```

och hur blir "s" strEnumber....

Sorry...

Henrik

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

## #10 — Peter S, 2005-11-08T22:10Z

```
strArticleName = request.Querystring("articleName")
strArticleNr = request.Querystring("articleNr")

function searchArticle(art)
  dim re
  set re = new regexp
  re.pattern = "(\d{7})(\d*)?" 

  set m = re.execute(art)

  if m.count then
    if len(m(0).submatches(1)) < 1 then
      searchArticle = m(0).submatches(0)
      exit function
    end if
  end if

  searchArticle = ""
end function

dim s
s = searchArticle(strArticleName)

if len(s) = 0 then
  ' Testa strArticleNr
  s = searchArticle(strArticleNr)

  if len(s) > 0 then
    [b]strEnumber = s[/b]
  else
    [b]Response.redirect "viewMtrl.asp?cmd=noEnumber"[/b]
  end if
else
  [b]strEnumber = s[/b]
end if
```

  :)

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

## #11 — devotion, 2005-11-08T22:15Z

:)
Okej.. det funkar på strArticlename, men inte på strArticleNr...

om det nu inte är jag som klippoklistrat fel....

Henrik

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

## #12 — devotion, 2005-11-08T22:27Z

hmm... SBS, som vanligt...

Jag hade använt skrivit fel i querystringen, så strArticleNr blev tom...

Det funkar nu!

Men nu bygger det väl på att E-numret som skrivs i strArticleNr är på 7 siffror och inte innehåller några andra tecken. Några kontroller görs väl inte med det.. eller...

//Henrik

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

## #13 — Peter S, 2005-11-08T22:29Z

Om strArticleName innehåller exakt sju på varandra efterföljande siffror, sparas denna sekvens i strEnumber.

Om ovanstående inte är sant, kollas strArticleNr för samma sekvens. Hittas den, tilldelas strEnumber det värdet.

Om båda ovanstående är falska dirigeras man till viewMtrl.asp.

Så fungerar det i alla fall för mig.  :)

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

## #14 — devotion, 2005-11-08T22:29Z

Oj, jo vid lite närmare koll så verkar det som det är så!!

Fan vad fint det blev....

Funkar kanon....

:)

//Henrik

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

## #15 — Peter S, 2005-11-08T22:31Z

strArticleNr kan innehålla andra tecken än siffror.  :) 

Red./ Jag är för seg av mig  ;)

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

## #16 — devotion, 2005-11-08T22:32Z

jo, jag testade lite mer och visst är det så... nu kan de där klåparna till elektriker skriva nästan hur som helst men jag kan ändå tyda vad det är för artiklar som dom menar...

Men jag hade ju en diskussion om att det finns en del artiklar (som ej är E-nummer som innehåller 8 tecken... det tas det väl inte hänsyn till va?

//Henrik

//Henrik

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

## #17 — devotion, 2005-11-08T22:34Z

> strArticleNr kan innehålla andra tecken än siffror.

 

vad menar du?

//Henrik

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

## #18 — Peter S, 2005-11-08T22:34Z

Det tas inte hänsyn till. Jag utgick från den kod du visade i det första inlägget.  :)

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

## #19 — Peter S, 2005-11-08T22:35Z

> **devotion skrev:**
>
> vad menar du?
> 
> //Henrik

Jag svarade på:

> **devotion skrev:**
>
> Men nu bygger det väl på att E-numret som skrivs i strArticleNr är på 7 siffror och inte innehåller några andra tecken

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

## #20 — devotion, 2005-11-08T22:36Z

ahh, okej det var ett sidospår tidigare idag...

(Y)

//Henrik

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/137212-söka-ut-artikelnummer-ur-sträng-regexp-2  
Nästa sida: https://www.webforum.nu/amne/asp/137212-söka-ut-artikelnummer-ur-sträng-regexp-2/page2.md
