webForumDet fria alternativet

Regular expression (problem med Plustecken)

2 svar · 247 visningar · startad av Andreas L

Andreas LMedlem sedan sep. 2000214 inlägg
#1

Hej!

Jag håller på med en lite enkel sökmotor mot MySQL, där jag efter att jag fått svaren även markerar de sökord som finns i texten me fet stil.
Till detta använder jag regular expression typ;

Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "(" & pattern & ")"

och skriver ut

objRegExp.Replace((Recordset1.Fields.Item("subjectnamn").Value),"<b>$1</b>")

Det fungerar jättebra ända tills jag skulle söka efter "c++" och då får jag felmeddelandet "Oväntad kvantifierare" på raden där jag använder den senare delen av koden.

Det verkar bara inträffa då jag har med två plustecken, däremot fungerar det om jag skulle skriva "c+++" eller "c+"

Snälla hjälp mig någon!!!
Jag har provat med Cstr() på vart enda ställe där pattern behandlas, eller replacefunktionen används men det är samma sak!

Tack på förhand!

EDIT: Det fungerar även om jag skriver "cc++" konstigt...

Andreas LMedlem sedan sep. 2000214 inlägg
#2

Löste det själv genom att byta ut "+" mot "\+" när jag monterar mönstersträngen

Engine^Medlem sedan dec. 20002 861 inlägg
#3

Du måste escape:a alla tecken som är specialtecken i ett pattern.

Dom olika tecknen: http://www.devguru.com/Technologies/vbscript/quickref/RegExp_Pattern.html

Genererad på 373 ms · cache AV · v20260730165559-full.f96bc7eb