webForumDet fria alternativet

Del av variabel

19 svar · 268 visningar · startad av bagera

bageraMedlem sedan jan. 2001126 inlägg
#1

Kan man hämta ut delar av text från en variabel?

om texten ser ut så här:

kalle tittar [hej] på tv [hoj] och är glad

och jag vill hämta bara "på tv", går det?

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

RinaldoMedlem sedan mars 20014 214 inlägg
#2

visst går det

<%
dim string
string = "kalle tittar [hej] på tv [hoj] och är glad"
omgjord = Mid(string,23,3)
Response.write omgjord
%>

------------------
zzzzzzzzzzzzzzzzzzzzzzzz...

bageraMedlem sedan jan. 2001126 inlägg
#3

Om jag inte vet värdet i variabeln då?
vad det än står i variablen så vill jag plocka ut allt mellan [hej] och [hoj].

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

jorgenMedlem sedan feb. 20012 412 inlägg
#4

Hej!

Du kan använda split() om du har en känd avgränsare.

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

VideMedlem sedan dec. 19998 577 inlägg
#5

Du får helt enkelt använda dig utav Regular Expression för detta.

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

bageraMedlem sedan jan. 2001126 inlägg
#6

jag har tittat lite på split men regular expression verkar roligare :)

än så länge har jag:

<%
strTarget = "test testing testar [hej] testo testi [hoj]"

set objRegExp = New RegExp
objRegExp.Pattern = "[hej] *"
objRegExp.IgnoreCase = false
objRegExp.Global = true
set colMatches = objRegExp.execute(strTarget)

for each Match in colMatches

response.write "funnen på " & Match.FirstIndex & ". "
response.write "värdet är '" & Match.value & "'.<br>"
next 
%>

och får ut:

Match.FirstIndex
Match.value

men hur kan jag göra texten emellan till en variabel?

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

bageraMedlem sedan jan. 2001126 inlägg
#7

Börjar haja lite här nu men det funkar ju inte.
Ska inte regular expression funka i vb5.0?
Är det nåt fel på detta?

<%
hej ="[hej]www.hej.se[/hej] fgdfgdfg dfg df gdfg"

Function hejpryl(text)
Dim objRegExp	
Set objRegExp = New RegExp	
objRegExp.Pattern = "\[hej=(.*?)\](.*?)\[\/hej\]"	
objRegExp.IgnoreCase = True	
objRegExp.Global = True	
hejpryl= objRegExp.Replace(text,"<a href=$1>$2</a>") 
Set objRegExp = Nothing
hejpryl = text
End Function
%>
<%=hejpryl(hej)%>

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

[Redigerat av bagera den 22 okt 2001]

VideMedlem sedan dec. 19998 577 inlägg
#8

Vad är det som blir fel? Felmeddelande?

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

bageraMedlem sedan jan. 2001126 inlägg
#9

Så här ser det ut

ASPError.ASPCode =
ASPError.Number = -2146823270 (0x800A139A )
ASPError.Source =
ASPError.Category = Microsoft VBScript runtime
ASPError.File = /Forum/test/test7.asp
ASPError.Line = 9
ASPError.Column = -1
ASPError.Description = Unexpected quantifier

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

VideMedlem sedan dec. 19998 577 inlägg
#10

Det är lite olika syntax mellan de olika vbs-versionerna, testa att uppgradera till 5.5 eller 5.6.

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

bageraMedlem sedan jan. 2001126 inlägg
#11

Har letat som en galning efter 5.5 men kan inte hitta den.
någon som vet var?
microsofts djungel knäckte mig idag :(

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

@ndersMedlem sedan juni 200032 969 inlägg
#12

http://www.microsoft.com/msdownload/vbscript/scripting.asp

Mvh,

------------------
All your base are belong to me.

bageraMedlem sedan jan. 2001126 inlägg
#13

Har läst en hel del nu och provat hur mycket som helst det funkar bättre nu efter uppgradering till 5.5 (tack!!), men jag kan tametusan inte begripa det endå.

kan någon förklara för mig hur man får ut värdet mellan [hej] och [/hej].
har pulat med olika patterns hela natten.

jag har kommit så långt att jag kan replacea [hej] och [/hej] men jag vill ju ha med det emellan också.
och vad är det som gör värdet till en
$1 eller $2?

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

JojoMedlem sedan okt. 200112 inlägg
#14

Så här kanske:

Dim intStartPos, intEndPos, strTemp, strResult
strTemp = "[hej]text mellan taggar[/hej]"
intStartPos = inStr(1, strTemp, "[hej]")
intEndPos = inStr(1, strTemp, "[/hej]")
strResult = mid(strTemp, intStartPos+5, intEndPos-(intStartPos+5))

Response.Write(strResult)

//Micke

bageraMedlem sedan jan. 2001126 inlägg
#15

ja det funkar ju men jag vill kunna göra ett pattern som gör samma sak :)

så här:

Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[url=(.*?)\](.*?)\[\/url\]"
parser = re.Replace(parser,"<a href=$1>$2</a>")

men den här funkar inte, å jag förstår inte riktigt vad som händer trots vides exelenta artikel.

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

JojoMedlem sedan okt. 200112 inlägg
#16

Vad den gör är att den tar den text som finns i start taggen och stoppar i href. Sedan tar den den text som finns mellan taggarna och stoppar i a-taggen.

Lite mer komplett blir det såhär:

Set re = New RegExp
parser = "kalle"
re.Global = True
re.IgnoreCase = True
re.Pattern = "\(.*?)\[\/url\]"
parser = re.Replace(parser,"<a href=$1>$2</a>")
Response.Write(parser)

//Micke

JojoMedlem sedan okt. 200112 inlägg
#17

Oops, så här blir bättre:

Set re = New RegExp
parser = "[url="http://www.kalle.com"]kalle[/url]"
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[url=(.*?)\](.*?)\[\/url\]"
parser = re.Replace(parser,"<a href=$1>$2</a>")
Response.Write(parser)

//Micke

JojoMedlem sedan okt. 200112 inlägg
#18

Tredje gången gillt:

Set re = New RegExp
parser = "[url="http://www.kalle.com"]kalle[/url]"
re.Global = True
re.IgnoreCase = True
re.Pattern = "\[url=(.*?)\](.*?)\[\/url\]"
parser = re.Replace(parser,"<a href=$1>$2</a>")
Response.Write(parser)

:-)

JojoMedlem sedan okt. 200112 inlägg
#19

Äsch, kolla <A HREF="http://bulow.darktech.org/test.asp"" TARGET=_blank>här</A> istället.

bageraMedlem sedan jan. 2001126 inlägg
#20

Nu släppte det :)

så här ville jag ju ha det!!

<%
texten = "[*url]www.kalle.com[/url*]"

(utan stjärnor naturligtvis ;)

function pars(parser)
Set parsing = New RegExp
parsing.Global = True
parsing.IgnoreCase = True
parsing.Pattern = "\[url\](.*?)\[\/url\]"
parser = parsing.Replace(parser,"<a href=$1>$1</a>")
pars = parser
end function
%>
<%=pars(texten)%>

Tackar alla för hjälpen!!

------------------
Mvh:

Johan

Små grodor är också grodor, men inte lika stora.

[Redigerat av bagera den 23 okt 2001]

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