oJonesMedlem sedan dec. 200154 inlägg Försöker bli klok på Reg. Exp. men det går inget vidare.
Det hela är till en sökfunktion som ska söka igenom en databas. Alla poster i databasen är i VARCHAR (mysql).
Problemet kommer då man söker efter "0200". Det finns en post som heter just 0200, men den hittas inte. Däremot hittas 02 och 2000.
Samma sak gäller när man söker efter . (punkt).
Function PunchWord(astring)
astring = Replace(astring,",","%")
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = true objRegExp.Pattern = sokord
Set matches = objRegExp.Execute(astring)
For Each match In matches
astring = Replace(astring,match,"<b>" & match & "</b>")
Next
Set matches = Nothing
Set objRegExp = Nothing
astring = Replace(astring,"%",",")
PunchWord = astring
End Function
Någon som kan hjälpa till?
LarsGMedlem sedan dec. 200012 464 inlägg Varför regexp överhuvudtaget?
replace(astring,sokord,"<b>" & sokord & "</b>")
Om du skall använda regexp så måste du särbehandla väldigt många tecken genom att skriva, t.ex.
pattern = "\."
om du vill söka på . eftersom det normalt betyder att man matchar ett godtyckligt tecken.
oJonesMedlem sedan dec. 200154 inlägg Anledningen till reg.Exp är att jag vill att den ska låta det sökta ordet stå kvar i exakt samma ordning vad gäller gemener/versaler.
Söker man efter "will" så skriver den ut <b>will</b> istället för <b>Will</b> som är det korrekta.
pirroMedlem sedan aug. 2001226 inlägg vet inte men kanske
Function PunchWord(astring)
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = true objRegExp.Pattern = "" & Replace(sokord,".","\.")
Set matches = objRegExp.Execute(astring)
For Each match In matches
astring = Replace(astring,match,"<b>" & match & "</b>")
Next
Set matches = Nothing
Set objRegExp = Nothing
PunchWord = astring
End Function
pirroMedlem sedan aug. 2001226 inlägg Mixtrade lite o fickd etta att fungera...
<%
Function PunchWord(astring,sokord)
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = true
objRegExp.Pattern = "" & Replace(sokord,".","\.")
Set matchesa = objRegExp.Execute(astring)
For Each matcha In matchesa
astring = Replace(astring,matcha,"<b>" & matcha & "</b>")
Next
Set matches = Nothing
Set objRegExp = Nothing
PunchWord = astring
End Function
%>
<%=PunchWord("min text her sa det sa","text")%>
pirroMedlem sedan aug. 2001226 inlägg Kom på en verson om du ska ha flera sökord....
<%
Function PunchWord(astring,sokord)
sokord = Replace(sokord,".","\.")
apa = split(sokord,",")
nya = ""
for i = 0 to ubound(apa)
nya = nya & "(" & apa(i) & ")"
if i <> ubound(apa) then
nya = nya & "|"
end if
next
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = true
objRegExp.Pattern = nya
Set matchesa = objRegExp.Execute(astring)
For Each matcha In matchesa
astring = Replace(astring,matcha,"<b>" & matcha & "</b>")
Next
Set matches = Nothing
Set objRegExp = Nothing
PunchWord = astring
End Function
%>
<%=PunchWord("her har du en hel hog med ord ser du","har,hel,ord")%>
alltså dela upp med ,