webForumDet fria alternativet

Regular Expressions

37 svar · 697 visningar · startad av erik_nordell

erik_nordellMedlem sedan aug. 2000431 inlägg
#1

Hallåj...
Har lite problem
Hur får jag ut strängen erik_nordell i denna text så att jag sedan kan göra en replace å sätta in den som en länk:

<medlem>erik_nordell</medlem> 'Alltså detta vill jag att det ska omvanlas till detta, antar att det går lättas med Regular Expressions
..

<a href="medlem.asp?namn=erik_nordell">erik_nordell</a>

Nån...?

------------------
Erki Nörd!
http://www.Tapiren.net - Din COMMUNITY PÅ intErnET.

Verktygsladan.com - för dig som vill ha gratis forum, gästbok mm utan reklam!

------------------
Erki Nörd!

http://www.Tapiren.net - Din COMMUNITY PÅ intErnET.

Verktygsladan.com - för dig som vill ha gratis forum, gästbok mm utan reklam!

cyprysMedlem sedan dec. 20003 563 inlägg
#2

Sök och du skall finna.

Host Host Host :)

------------------
MVH // Cyprys
Cyprys
Synd att du inte kan köpa en voodoojordglob och sedan snurra på den fort som fan och skrämma skiten ur alla.

erik_nordellMedlem sedan aug. 2000431 inlägg
#3

Tackar...
Har läst lite å kollat runt lite här på wF...

Jag får detta att fungera med 1 länk men inte med 2 eller fler då visas bara en länk, vad ska jag skriva för tecken eller vad är fel?

<%
strText = "Nu testar jag detta lite, [medlem=http://www.tapiren.net]Tapiren community[/medlem] är en webplats som jag har gjort! Jag har även gjort [medlem=http://www.varktygsladan.com]Verktygslådan.com[/medlem]"

Set tp = New regexp
tp.Global = true
tp.IgnoreCase = true
tp.Pattern = "\[medlem=(.*)\](.*)\[\/medlem]"
strText = tp.Replace(strText,"<b><a href=""medlem.asp?namn=$1"">$2</a></b>")
Response.write strText
%>

------------------
Erki Nörd!

http://www.Tapiren.net - Din COMMUNITY PÅ intErnET.

Verktygsladan.com - för dig som vill ha gratis forum, gästbok mm utan reklam!

VideMedlem sedan dec. 19998 577 inlägg
#4

Testa detta pattern:

"\[medlem=([^\]]*?)\](.*)\[\/medlem]"

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

erik_nordellMedlem sedan aug. 2000431 inlägg
#5

det fungerade inte :(

Körningsfel i Microsoft VBScript (0x800A139A)
Oväntad kvantifierare

När jag tog bort frågetecknet så fick jag inget felmeddelande men det var ändå fel... länken blev "lång"

------------------
Erki Nörd!

http://www.Tapiren.net - Din COMMUNITY PÅ intErnET.

Verktygsladan.com - för dig som vill ha gratis forum, gästbok mm utan reklam!

PatrikBMedlem sedan mars 20002 836 inlägg
#6

Testa denna:

<%
strText = "Nu testar jag detta lite, [medlem=http://www.tapiren.net]Tapiren community[/medlem] är en webplats som jag har gjort! Jag har även gjort [medlem=http://www.varktygsladan.com]Verktygslådan.com[/medlem]"
Set tp = New regexp
tp.Global = true
tp.IgnoreCase = true
tp.Pattern = "\[medlem=(.*)\](.*)\[\/medlem]"

Set matches = tp.Execute(strText)
For Each match in matches
	strText = tp.Replace(strText,"<b><a href=""medlem.asp?namn=$1"">$2</a></b>")
Next
Response.write strText
%>

e ju ingen hejjare på RegExp ... men tror att denna "bör" funka.

cya,
PatrikB

------------------
*så kan det gå när inte haspen är på*

erik_nordellMedlem sedan aug. 2000431 inlägg
#7

Njeee :(
Det fungerade inte...

Kolla källkoden: (resultatet)

Nu testar jag detta lite, <b><a href="medlem.asp?namn=http://www.tapiren.net]Tapiren community[/medlem] är en webplats som jag har gjort! Jag har även gjort [medlem=http://www.varktygsladan.com">Verktygslådan.com</a></b>

varför blir det så för nu då?

------------------
Erki Nörd!

[url="http://www.Tapiren.net"]http://www.Tapiren.net - Din COMMUNITY PÅ intErnET.

Verktygsladan.com - för dig som vill ha gratis forum, gästbok mm utan reklam!

DavidBMedlem sedan jan. 20001 372 inlägg
#8

fick samma fel att den bara skrev ut första länken testa att göra en funktion av det hela:

<%
texten = "Nu testar jag detta lite, [medlem=http://www.tapiren.net]Tapiren community[/medlem] är en webplats som jag har gjort! Jag har även gjort [medlem=http://www.varktygsladan.com]Verktygslådan.com[/medlem]"

Function medlemsgrej(strText)
Set tp = New regexp
tp.Global = true
tp.IgnoreCase = true
tp.Pattern = "\[medlem=(.*)\](.*)\[\/medlem]"
strText = tp.Replace(strText,"<b><a href=""medlem.asp?namn=$1"">$2</a></b>")
medlemsgrej = strText
End Function

Response.Write medlemsgrej(texten)
%>

------------------
// David - Probably the best guy in the world

nicclasMedlem sedan feb. 20001 050 inlägg
#9

Vide missade ett \ i sin reg exp:
"\[medlem=([^\]]*?)\](.*)\[\/medlem]"
skall väl vara
"\[medlem=([^\]]*?)\](.*)\[\/medlem\]"

Är det inte så att non-greedy (dvs ?-tecknet) bara funkar med WSH 5.5?

Har du inte 5.5 så kan du ju splitta strängen på "[medlem]" och gör reg-expen på varje delsträng för att sedan sätta ihop den igen...

/nicclas

erik_nordellMedlem sedan aug. 2000431 inlägg
#10

Nepp, tyvärr så får jag samma sak..
Dvs att den sista länken skrivs ut...(bara)

*suck*

------------------
Erki Nörd!

http://www.Tapiren.net - Din COMMUNITY PÅ intErnET.

Verktygsladan.com - för dig som vill ha gratis forum, gästbok mm utan reklam!

DavidBMedlem sedan jan. 20001 372 inlägg
#11

testa detta:

<%
texten = "Nu testar jag detta lite, [medlem=http://www.tapiren.net]Tapiren community[/medlem] är en webplats som jag har gjort! Jag har även gjort [medlem=http://www.varktygsladan.com]Verktygslådan.com[/medlem]"

Function MedlemsGrej(myText)
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "\[medlem=(.*?)\](.*?)\[/medlem\]"
MedlemsGrej = objRegExp.Replace(myText, "<a href=""medlem.asp?namn=$1"">$2</a>")
Set objRegExp = Nothing
End Function

Response.Write MedlemsGrej(texten)
%>

------------------
// David - Probably the best guy in the world

VideMedlem sedan dec. 19998 577 inlägg
#12

Denna funkar iaf för mig:

"\[medlem=([^\]].*?)\](.*?)\[\/medlem\]"

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

erik_nordellMedlem sedan aug. 2000431 inlägg
#13

Nej jag får det inte att funka...

Måste väl va att jag inte har 5.5 av det där....
Ska ladda ner det å testa....

------------------
Erki Nörd!

http://www.Tapiren.net - Din COMMUNITY PÅ intErnET.

Verktygsladan.com - för dig som vill ha gratis forum, gästbok mm utan reklam!

PatrikBMedlem sedan mars 20002 836 inlägg
#14

Får både Vides och DavidBs att funka *ler*

nu har man lärt sig lite mer .... igen.

cya,
PatrikB

------------------
*så kan det gå när inte haspen är på*

erik_nordellMedlem sedan aug. 2000431 inlägg
#15

Hmmm kostigt..
vadå får du så att det skrivs ut två URLEN?!

tapiren community och sen verktygslåndan.com ?

får fortfarande felmess nu när jag laddade ner 5.5 av vad det nu va...

Ska sova se ifall jag ser nåt dumt fel imorgon :o

------------------
Erki Nörd!

http://www.Tapiren.net - Din COMMUNITY PÅ intErnET.

Verktygsladan.com - för dig som vill ha gratis forum, gästbok mm utan reklam!

PatrikBMedlem sedan mars 20002 836 inlägg
#16

Min kod ser ut så här:

<%
strText = "Nu testar jag detta lite, [medlem=http://www.tapiren.net]Tapiren community[/medlem] är en webplats som jag har gjort! Jag har även gjort [medlem=http://www.varktygsladan.com]Verktygslådan.com[/medlem]"
Set tp = New regexp
tp.Global = true
tp.IgnoreCase = true
'tp.Pattern = "\[medlem=(.*?)\](.*?)\[/medlem\]"

tp.Pattern = "\[medlem=([^\]].*?)\](.*?)\[\/medlem\]"

	strText = tp.Replace(strText,"<b><a href=""medlem.asp?namn=$1"">$2</a></b>")

Response.write strText
%>

funkar och den skriver ut båda urlerna korrekt.

cya,
PatrikB

------------------
*så kan det gå när inte haspen är på*

erik_nordellMedlem sedan aug. 2000431 inlägg
#17

Nu kopierade jag EXAKT!
Körde filen i IIS, testade även på webhotellet....
men får detta felmeddelande:

Feltyp:
Körningsfel i Microsoft VBScript (0x800A139A)
Oväntad kvantifierare
/test.asp, line 10

FAAAAAAAAAAN

------------------
Erki Nörd!

http://www.Tapiren.net - Din COMMUNITY PÅ intErnET.

Verktygsladan.com - för dig som vill ha gratis forum, gästbok mm utan reklam!

PatrikBMedlem sedan mars 20002 836 inlägg
#18

Det e inte roligt när det inte vill sig.

Kopierade min kod ovan, sparade som en ny fil och allt funkar.

Nu har jag testat den på både en IIS 4 och en IIS 5 båda med VB Script Engine (5.5)

IIS 4: http://www.mrwize.nu/wf/reg_exp.asp

cya,
PatrikB

------------------
*så kan det gå när inte haspen är på*

Crimz0nMedlem sedan juli 200133 inlägg
#19

Är inte heller nån hejare på Regular Expressions men denna kod ska funka...

set objRxp=new RegExp
objRxp.Global=True
objRxp.IgnoreCase=True
objRxp.Pattern="\[medlem\](.+?)\[/medlem\]"
for each match in objRxp.Execute(strText)
strText=replace(strText,match.value,"<a href=""medlem.asp?namn=" & server.urlencode(match.submatches(0)) & """>" & match.submatches(0) & "</a>")
next

Nu blir [medlem]Anvar[/medlem] <a href="medlem.asp?namn=Anvar>Anvar</a>

JanspeedMedlem sedan jan. 2001510 inlägg
#20

Är jag knäpp eller frågade inte Erik om <medlem>erik_nordell</medlem>? Eller har jag missat nått? :q

[r]Missade en \[/r]

strText = "Medlem är <medlem>JANspeed</medlem> och det är även <medlem>Gubben noak</medlem>"

Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true

objRegExp.Pattern = "<medlem>(.*?)<\/medlem>"
strText = objRegExp.Replace(strText,"<a href=""medlem.asp?namn=$1"">$1</a>")

[Redigerat av Janspeed den 06 aug 2001]

139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)