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.
19 svar · 268 visningar · startad av bagera
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.
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...
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.
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?
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.
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]
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.
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.
http://www.microsoft.com/msdownload/vbscript/scripting.asp
Mvh,
------------------
All your base are belong to me.
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.
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
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.
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
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
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)
:-)
Äsch, kolla <A HREF="http://bulow.darktech.org/test.asp"" TARGET=_blank>här</A> istället.
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]