---
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"
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: 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/168716-sålla-ut-och-markera-ord-i-en-lista"
---

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

_Sida 1 av 2._

## #1 — Eclipse, 2008-02-04T11:32Z

Jag har en topplista som jag vill plocka ut orden i. Markera orden i.

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

Hur skriver jag med kod: Leta reda på alla ord mellan " - " och vbCRLF och gör dom i en speciell kod...

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

## #2 — voigtann1, 2008-02-04T11:43Z

Har du någon kod just nu att gå efter? Bör går att göra med RegExp

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

## #3 — Eclipse, 2008-02-04T12:28Z

```
FUNCTION validateURL(strText)
	Dim mDelimit
	Dim re
	mDelimit = Chr(0)
	Set re = New RegExp
	re.Global = True
	re.IgnoreCase = true

	' ## PATTERN...
	re.Pattern = ("[ - ].vbCRLF")
	strText =  re.Replace(strText, checkThisWord(mDelimit) & " xx " )

	validateURL = strText
END FUNCTION
```

Plockat från annat projekt.

Jag är lite dålig på det där med mönster/pattern. Antingen " - " eller "- " på ena sidan och vbCRLF på den andra sidan. Ordet/-en där emellan vill jag jobba med!

Det fungerar... det ser ut som tidigare, utan felmeddelande, så det är svårt att felsöka! Men det där att plocka ut ord fungerar inte.

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

## #4 — voigtann1, 2008-02-04T15:11Z

Ditt mönster i RegExp:et måste vara fel. vbCrlf = ny rad. men just nu söker du efter:
\[\] är träffa allt som finns i denna grupp.

Är 3, 1,1,1,1 alltid ett tal? Jag hade nog gjort:

```
re.Pattern = "\d+ \- ([^\n]+)\n"
```

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

## #5 — Eclipse, 2008-02-04T21:07Z

Tack!

Min kod är fel, det är därför jag skriver på forumet.

OK, vi säger så här i stället:

re.Pattern = Hjälp mig att plocka ut orden som står mellan 1. "Mellanslag + minustecken + mellanskal" och fram till och med 2. "vbCRLF, radbrytningen".

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

Jag har studerat Pattern, och annan kod, men det är svårt. Jag förstår inte hur man skriver för att göra ett sökkriteria.

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

## #6 — voigtann1, 2008-02-04T21:17Z

ta bara bort \\d+ från min kod så hämtar den ut det

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

## #7 — Eclipse, 2008-02-04T21:38Z

<http://weblogs.asp.net/rosherove/articles/6863.aspx>

Jag har studerat alla småtecken på denna länken och kom fram till följande:

re.Pattern = "(\\s\\-\\s)(\[^\\n\]+)"

\*\*\*
Tack för kod! Den fungerar säkert... nu är det replacekoden som vi ska få ordning på...

strText =  re.Replace(strText, checkThisWord(mDelimit) & " xx " )

\*\*\*
Det blir bara en siffra... och jag tror jag fattar! Den tar från **första** " - " till **sista** vbCRLF!!

Ja... och då blir det bara en siffra kvar... 3 i detta exemplet!... Hmmm.. Så ska det ju inte vara. 

???

It's easy when you know how....! :-)

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

## #8 — voigtann1, 2008-02-04T22:03Z

saken är att du inte behöver ha () mellan \\s\\-\\s då du inte behöver gruppera den texten. Den är ju egentligen inte viktig.
Och om du vill hämta ut texten mellan "-" och nyrad så använder du (beroende på hur många () du har $\<nummer\> i din Replace.

<http://www.regular-expressions.info/> är en bra sida om att läsa om RegExp.

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

## #9 — Eclipse, 2008-02-05T09:50Z

```
FUNCTION validateURL(strText)
	Dim mDelimit
	Dim re
	mDelimit = Chr(0)
	Set re = New RegExp
	re.Global = True
	re.IgnoreCase = true

	' ## PATTERN...
	re.Pattern = "\- ([^\n]+)\n"
	strText =  re.Replace(strText, checkThisWord($1$2) & " xx " )

	validateURL = strText
END FUNCTION
```

```
Microsoft VBScript compilation  error '800a0408'

Invalid character

/admin/weblog/index.asp, line 139

strText =  re.Replace(strText, checkThisWord($1$2) & " xx " )
---------------------------------------------^
```

Det är svårt...

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

## #10 — voigtann1, 2008-02-05T09:51Z

$1 och $2 är Strängar inte variabler.

```
strText =  re.Replace(strText, checkThisWord("$1$2") & " xx " )
```

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

## #11 — Eclipse, 2008-02-05T10:24Z

```
FUNCTION checkThisWord(word)
  response.write "<b>" & word & "</b>"
  [...]
END FUNCTION
```

Detta är grymt rörigt...

Jag fattar inte vad mDelimit gör och när jag skriver "$1", inlkusuive dubbelfjumparna i koden, så skrivs det ut dollar ett ($1) i klartext i den lilla koden ovan.

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

## #12 — voigtann1, 2008-02-05T10:27Z

Din funktion är inte en funktion.... den ser mer ut som en Sub Funktion enligt min mening.

```
Function checkThisWord(word)
checkThisWord = "<b>" & word & "</b>"
End Function
```

 ska det nog vara. En Funktion skall retunera något. Medans en Sub funktion "körs".

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

## #13 — Eclipse, 2008-02-07T10:10Z

```
Function checkThisWord(word)
-- checkThisWord = word & " -- " & LEN(word)
End Function
```

Alla värden i word blir bara två tecken... Hmm... klurigt!

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

## #14 — voigtann1, 2008-02-07T10:44Z

1\. Varför har du ChecThisWord? är det någon kod du gör eller är det bara för att göra texten fet?

```
Function FormatList(strText)
	Dim re
	Set re = New RegExp
	re.IgnoreCase = True
	re.MultiLine = True
	re.Global = True
	re.Pattern = "(- )([^\n]+)\n|$"
	FormatList = re.Replace(strText, "$1<strong>$2</strong><br />")
End Function
```

Fungera för mig.

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

## #15 — Eclipse, 2008-02-07T10:51Z

Tack!

Jag ska studera koden noggrant. Koden på forumet är lite tramsig, kan hålla med om det.

Koden kommer från ett annat sammanhang, mer komplext. Det är inte bara att göra fet text! :-) Jag brukar ibland skriva saker med response.write för att kolla om saker fungerar. Var man är, så att säga. Eftersom det är en lista med många ord gjorde jag dom feta för att särskilja dom från de andra orden...

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

## #16 — voigtann1, 2008-02-07T12:36Z

Citat från RegexBuddy:

```
' (- )([^\n]+)\n|$
' 
' Options: case insensitive; ^ and $ match at line breaks
' 
' Match either the regular expression below (attempting the next alternative only if this one fails) «(- )([^\n]+)\n»
'    Match the regular expression below and capture its match into backreference number 1 «(- )»
'       Match the characters “- ” literally «- »
'    Match the regular expression below and capture its match into backreference number 2 «([^\n]+)»
'       Match any character that is not a “A line feed character” «[^\n]+»
'          Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
'    Match a line feed character «\n»
' Or match regular expression number 2 below (the entire match attempt fails if this one fails to match) «$»
'    Assert position at the end of a line (at the end of the string or before a line break character) «$»
```

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

## #17 — Eclipse, 2008-02-07T14:48Z

(Du har annan kod i detta sista exemplet, men det kanske gör det samma??)

Detta fungerar:

```
Function FormatList(strText)
	strText = strText & vbCRLF
	Dim re
	Set re = New RegExp
	re.IgnoreCase = True
	re.MultiLine = True
	re.Global = True
	re.Pattern = "(- )([^\n]+)\n|$"
'	FormatList = re.Replace(strText, "$1<strong>$2</strong><br />")
	FormatList =  re.Replace(strText, checkThisWord("$2"))
End Function

Function checkThisWord(word)
-- checkThisWord = "<b>" & word & "</B><BR>"
End Function
```

Alltså...! checkThisWord är egentligen en mer avancerad funktion som även används på andra platser i hemsidan. Därför kan jag inte skriva den koden i samma funktion som den andra. (Koden gör mer än att bara feta till texten. Den kollar det specifika ordet mot några andra specifika listor... I färdigt utförande ska den inte feta till texten, däremot göra en liten markering om ordet finns eller inte.)

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

## #18 — Eclipse, 2008-02-07T15:03Z

Detta fungerar **INTE**!!

```
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) & "</B><BR>"
end Function
```

Jag har nu ÄNTLIGEN lokaliserat en vanlig sak som inte fungerar. Jag har testat lite olika varianter och även fast rätt ord skrivs ut i fet stil är längden på word 2 (dvs. LEN(word) = 2) på alla raderna... Så ska det inte vara!

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

## #19 — voigtann1, 2008-02-07T15:12Z

1\. Vad är strText som du skickar in i din funktion... Exakt vad skickar du in... är omöjligt att gissa detta för mig.
2\. På Funktioner du använder ger inte två rader kod om det är 10 rader du använder. Är omöjligt.
3\. strText = strText & vbCRLF behöver du inte ha då jag har lagt till \\n\|$ i slutet av regExp.

red. Varför len blir två är att det är strängen "$2" som kommer in i funktionen... det är inte förrän efter RegExpet har körts som den ersätter $2 med vad som har varit i texten tidigare.

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

## #20 — Eclipse, 2008-02-07T15:21Z

3\. OK, ska ta bort det.

2\. Fattar inte.

1\. Bifogar fil. I början av tråden förklarade jag det... men det är lätt att glömma!

Bilagor:

- [listOfWords.txt](https://www.webforum.nu/a/17159.txt)

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

---

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