---
title: "sålla ut och markera ord i en lista..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/168716-sålla-ut-och-markera-ord-i-en-lista/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Eclipse"
published: "2008-02-04T11:32:12.000Z"
updated: "2008-02-08T12:09:42.000Z"
replies: 29
views: 1285
page: 2
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/168716-sålla-ut-och-markera-ord-i-en-lista"
---

# sålla ut och markera ord i en lista...

_Sida 2 av 2._

## #21 — voigtann1, 2008-02-07T15:26Z

```
<%
Function FormatList(strText)
	strText = strText & vbCRLF
	Dim re
	Set re = New RegExp
	re.IgnoreCase = True
	re.MultiLine = True
	re.Global = True
	re.Pattern = "(\d+ - )([^\n]+)\n" ' La dit \d+ för talen i början av strängen
	dim myMatches
	Set myMatches = re.Execute(strText)
	For Each myMatch In myMatches
		FormatList = FormatList & checkThisWord(myMatch.SubMatches(1))
	Next
End Function

Function checkThisWord(word)
	If Right(word,3) = ".se" Then word = Replace(word, ".se", "")
	word = replace(word, " ", "")
	word = replace(word, ".", "")
	checkThisWord = "<b>" & word & " LEN: " & Len(word) - 1 & "</b><br>"
End Function

dim str
str = "3 - ukrainas natur" & vbCrLf & "1 - ukrainas ambassad" & vbCrLf & "1 - ukraina visa" & vbCrLf & "1 - ukraina turism" & vbCrLf & "1 - sveriges ambassad i ukraina" & vbCrLf & "1 - fakta om kiev" & vbCrLf & "1 - fakta kiev" & vbCrLf & "1 - allakiev" & vbCrLf

Response.Write FormatList(str)

%>
```

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

## #22 — Eclipse, 2008-02-07T15:26Z

Listan ser ut som den ser ut... Men om det nu är ett problem så får jag ta mig tid att skapa listan utifrån andra kriterier. Är det helt omöjligt att separera ord på detta viset!?

Att jag skrev: strText = strText & vbCRLF

berodde på att det inte fanns en radbrytning i slutet. Not a big deal. Det sista ordet fungerade inte.

Men texten blir ju FET. Det borde fungera...!? Ordet skrivs ju ut. Varför går det inte att skicka ordet som ett värde till en annan funktion? Det är sånt man kan undra...!

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

## #23 — voigtann1, 2008-02-07T15:27Z

> **Eclipse skrev:**
>
> Men texten blir ju FET. Det borde fungera...!? Ordet skrivs ju ut. Varför går det inte att skicka ordet som ett värde till en annan funktion? Det är sånt man kan undra...!

Varför? Vi skickade inte vad RegExpet har hittat vi skickade in en sträng "$2" (mitt fel mest). Det är inte förrän efter CheckThisWord har körts vi kör RegExpets replace. Men funktionen ovan skall ha fixat det

Kolla koden ovan den skall fungera som du vill.

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

## #24 — Eclipse, 2008-02-07T15:35Z

Vi skriver om varandra här. Jag har testat din kod.

\*\*\*\*
OK, Gött mos, broder!

ÄNTLIGEN fungerar det! Det var nog FOR-loopen som gjorde skillnaden!!

Nu ska jag rensa i 2 km kod... och fixa med radbrytningar, med mera! Hinner inte det just nu.

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

## #25 — voigtann1, 2008-02-07T15:39Z

```
Function FormatList(strText)
	strText = strText & vbCRLF
	Dim re
	Set re = New RegExp
	re.IgnoreCase = True
	re.MultiLine = True
	re.Global = True
	re.Pattern = "\d+ - ([^\n]+)\n"
	dim myMatches
	Set myMatches = re.Execute(strText)
	dim newText
	For Each myMatch In myMatches
		FormatList = FormatList & checkThisWord(myMatch.SubMatches(0))
	Next
End Function
```

tog bort () från \\d+ - då man inte verkar vara intresserad på att ha den som en "submatch". Och ändrade myMatch.SubMatches(1) till myMatch.SubMatches(0). Inte någon direkt prestanda ökning men om man inte behöver den så behöver man den inte ;)

bra att det fungera nu iallafall. Acceptera ett svar som lösning på din tråd för att hjälpa andra ;)

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

## #26 — Eclipse, 2008-02-07T21:01Z

Ja!

Jag ska "Acceptera som slutgiltigt svar" men jag tänkte vänta tills jag fått allt att fungera - på riktigt så att säga - samt att du är (någorlunda) färdig med att redigera tidigare inlägg...! :-)

\*\*\*
Red: Förslag!?

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

## #27 — Eclipse, 2008-02-07T21:52Z

Bra att jag inte avslutat tråden. Två saker fungerar inte.

```
str = "3 - ukraina.se" & vbCrLf & "3 - ukrainas natur" & vbCrLf & "1 - ukrainas ambassad" & vbCrLf & "1 - ukraina visa" & vbCrLf & "1 - ukraina turism" & vbCrLf & "1 - sveriges ambassad i ukraina" & vbCrLf & "1 - fakta om kiev" & vbCrLf & "1 - fakta kiev" & vbCrLf & "1 - allakiev" & vbCrLf
```

**1\.**  samma som det du skrev, men första posten är ukraina.se

Resultatet blir inte ukraina, som det står i koden utan ukrainase. Bara punkten försvinner. Koden: replace(word, ".se", "") verkar inte köras.

\*\*\*
**2\. Siffrorna försvinner!**

3 - ukraina.se
3 - ukrainas natur
1 - ukrainas ambassad
1 - ukraina visa
1 - ukraina turism
1 - sveriges ambassad i ukraina
1 - fakta om kiev
1 - fakta kiev
1 - allakiev

\*\*\*
OBS! Detta är fortfarande exempel!! Men det är viktigt att det står siffra , mellanslag, sträck mellanslag före ordet.

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

## #28 — Eclipse, 2008-02-07T21:59Z

```
<%
Function FormatList(strText)
	strText = strText & vbCRLF ' <-- ### OSB!! Måste vara med!!
	Dim re
	Set re = New RegExp
	re.IgnoreCase = True
	re.MultiLine = True
	re.Global = True
	re.Pattern = "\d+ - ([^\n]+)\n"
	dim myMatches
	Set myMatches = re.Execute(strText)
	dim newText
	For Each myMatch In myMatches
		FormatList = FormatList & checkThisWord(myMatch.SubMatches(0))
	Next
End Function

Function checkThisWord(word)
	If Right(word,3) = ".se" Then word = Replace(word, ".se", "")
	word = replace(word, " ", "")
	word = replace(word, ".", "")
	checkThisWord = "<b>" & word & " LEN: " & Len(word) - 1 & "</b><br>"
End Function

dim str
str = "3 - ukraina.se" & vbCrLf & "3 - ukrainas natur" & vbCrLf & "1 - ukrainas ambassad" & vbCrLf & "1 - ukraina visa" & vbCrLf & "1 - ukraina turism" & vbCrLf & "1 - sveriges ambassad i ukraina" & vbCrLf & "1 - fakta om kiev" & vbCrLf & "1 - fakta kiev" & vbCrLf & "1 - allakiev" & vbCrLf

Response.Write FormatList(str)
%>
```

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

## #29 — voigtann1, 2008-02-08T06:05Z

```
<%
Function FormatList(strText)
	[b]' Nej det behövs inte enligt de kriterier du har skickat till oss. Fungera enligt ditt exempel utan några problem.[/b]
	'strText = strText & vbCRLF ' <-- ### OSB!! Måste vara med!!
	Dim re
	Set re = New RegExp
	re.IgnoreCase = True
	re.MultiLine = True
	re.Global = True
	re.Pattern = "[b](\d+ - )[/b]([^\n]+)\n"
	dim myMatches
	Set myMatches = re.Execute(strText)
	dim newText
	For Each myMatch In myMatches
		FormatList = FormatList & [b]myMatch.SubMatches(0)[/b] & checkThisWord(myMatch.SubMatches([b]1[/b]))
	Next
	[b]Set re = Nothing[/b]
End Function

Function checkThisWord(word)
	[b]Dim re
	Set re = New RegExp
	re.IgnoreCase = True
	re.Global = True
	re.Pattern = "(.*?)(.se)?"
	word = re.replace(word,"$1")
	set re = Nothing[/b]
	word = replace(word, " ", "")
	word = replace(word, ".", "")
	checkThisWord = "<b>" & word & " LEN: " & Len(word) - 1 & "</b><br>"
End Function

dim str
str = "3 - ukraina.se" & vbCrLf & "3 - ukrainas natur" & vbCrLf & "1 - ukrainas ambassad" & vbCrLf & "1 - ukraina visa" & vbCrLf & "1 - ukraina turism" & vbCrLf & "1 - sveriges ambassad i ukraina" & vbCrLf & "1 - fakta om kiev" & vbCrLf & "1 - fakta kiev" & vbCrLf & "1 - allakiev" & vbCrLf

Response.Write FormatList(str)
%>
```

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

## #30 — Eclipse, 2008-02-08T12:09Z

Äntligen... Phew!

Vilken kamp! Ett stort tack till dig, broder! Du är verkligen duktig på regExp!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/168716-sålla-ut-och-markera-ord-i-en-lista/page2  
Föregående sida: https://www.webforum.nu/amne/asp/168716-sålla-ut-och-markera-ord-i-en-lista.md
