---
title: "RegExp men icke"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/6583-regexp-men-icke"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Vide"
published: "2000-09-13T07:20:00.000Z"
updated: "2000-09-13T14:38:00.000Z"
replies: 6
views: 279
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/6583-regexp-men-icke"
---

# RegExp men icke

## #1 — Vide, 2000-09-13T07:20Z

Hejsan!

Min tur att ställa lite frågor... :)

Det är så att jag håller på med en sökfunktion för mina text-filer på webeye.nu, som den är nu så funkar den så långt att den söker igenom filerna efter det ord man angivit och formaterar det till en annan font. DET funkar bra. MEN när sökningen utförs så vill jag inte att den skall söka i texten mellan \< och \>, då detta kan ställa till problem i länkar et.c... utan jag vill bara söka utanför html-taggar... Har jag förklarat mig luddigt? Ett exempel:

Jag söker på ordet Distinct i denna text:

Distinct är en SQLare, här är en \<a href="www.webeye.nu/distinct.asp"\>länk\</a\>

Detta blir ju helt fel, när den formaterar länken så skulle det bli:

Distinct är en SQLare, här är en \<a href="www.webeye.nu/\<font color=FFFF00\>distinct\</font\>.asp"\>länk\</a\>

Alltså inte alls önskvärt... Här är koden för sökningen... Ett litet test av det hela just nu hittar ni här: <http://www.webeye.nu/default.asp?que=sok/default.asp> 

```
sokstr = request.Form("sokstr")
	http = "http://www.webeye.nu/default.asp?que=asp/artiklar"
	lokal = Server.Mappath("asp\artiklar\")

	Set fso = CreateObject("scripting.FileSystemObject")
	Set fsof = fso.GetFolder(lokal)
	Set fsofi = fsof.files

	'***** Skapar ett Regular Expression  *****'
	Set regEx = New RegExp
	regEx.IgnoreCase = True	
	regEx.Global = True

	chk = 0

	For each fil in fsofi

		'***** Öppnar filen och lägger allt innehåll i variabelnn filecont *****'
		Set filen = fso.OpenTextFile(lokal & "\" & fil.name)
		filecont = filen.ReadAll
		'Response.write "Fil: " & fil.name & "<br>"
	
		regEx.Pattern = sokstr
		Set Matches = regEx.Execute(filecont)
		For each match1 in Matches
			chk = chk + 1
			exit For
		Next
	
		If chk > 0 then
			Response.write "<a href='default.asp?que=sok/default.asp&sokstr2=" & sokstr & "&fil=" & fil.name & "'>" & fil.name & "</a><br>"
		End If
	Next

	If chk = 0 then Response.write "Det fanns ingen träff på ordet <b>" & sokstr & "</b>"
```

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

## #2 — PatrikB, 2000-09-13T09:20Z

Hello Vide,

det verkar som om din test funkar.

Provade med en hel del olika sökord och kom vidare med korrekta länkar, ej så som du beskrev här ovan.
\[redigerat\]
En liten bugg .... hittar den endast en fil med sökordet i så skriver den ut länk till filen och under skriver den att det inte fanns några träffar på sökordet, fast att det fanns en. 
\[/redigerat\]
cya,
PatrikB

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

## #3 — Vide, 2000-09-13T09:46Z

En liten missuppfattning... :)

Länkarna till filerna funkar finfint... det är inte som är problemet... utan det är dom länkarna i filen länken leder till som är problemet... Länkarna i den filen blir fel...

// Vide

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

## #4 — PatrikB, 2000-09-13T10:16Z

Hello igen Vide,

ja, hos mig så funkar även länkarna inne i filerna som man får som resultat efter en sökning. 

/PatrikB

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

## #5 — Vide, 2000-09-13T11:12Z

Då har du sökt på ett ord som inte finns med i a-taggen... :)

Om vi nu söker på 'aspguild' så får vi upp en sida 'asp9.asp' och kolla man sökresultatet så ser man att den länken ser lite konstig ut...: <http://www.webeye.nu/default.asp?que=sok/default.asp&sokstr2=aspguild&fil=asp9.asp>

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

## #6 — emission, 2000-09-13T11:54Z

Att endast hitta dessa ord är knepigt, särskilt som RegExp i VBScript är lite haövdant. Det du kan göra är att rensa ut alla taggat ur texten, innan du söker efter matchningarna.

regex.Pattern = "\<\[^\>\]+\>"

filecont=regex.replace(filecont,"")

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

## #7 — Vide, 2000-09-13T14:38Z

hmm... nu har jag kommit så långt att alla formaterade ord så som \<a\> och andra taggar inte blir påverkade, så att länkarna blir rätt... men länkens titel blir inte formaterad, och det är nu det jag vill komma åt...

Nuvarande kod för visning av filen:

	

```
	lokal = Server.Mappath("asp\artiklar\")
	Set fso = CreateObject("scripting.FileSystemObject")
	Set fsof = fso.GetFolder(lokal)
	Set fsofi = fsof.files
	Set filen = fso.OpenTextFile(lokal & "\" & Request.Querystring("fil"))
	filecont = filen.ReadAll
	
	Set regEx = New RegExp
	regEx.IgnoreCase = True	
	regEx.Global = True

strSida = Replace(filecont,Request.Querystring("sokstr2"),"<font color=330000 size=2 class=sokstr>" & Request.Querystring("sokstr2") & "</font>",1,-1,1)
	
	regex.Pattern = "<[^>]*<font color=330000 size=2 class=sokstr>" & Request.Querystring("sokstr2") & "</font>.*>"
	Set matches = regex.execute(strSida)
	
	For each match in matches

		strReplace = replace(match,"<font color=330000 size=2 class=sokstr>","")
		strReplace = replace(strReplace,"</font>","")
		'Response.write "Match: " & match & "<br>strReplace: " & strReplace & "<br>"
		regex.pattern = match
		'Response.write strReplace
		strSida = regex.replace(strSida, strReplace)
	Next
Response.write strSida
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/6583-regexp-men-icke
