Jag låter användare använda fejk-html taggar som ser ut tex som Använder du RegExp object? Såhär ser det ut nu (för att parsa länkar):regexp
[link=url], url = http://www.google.com .
Mitt pattern för att hitta link-taggen ser ut som
"\[link=(.*)\]"
men det blir fel om någon skriver [link=http://www.google.com][br] eftersom mitt pattern är "girigt".
Jag vill alltså ha nån operator som säger att den ska ta så lite som möjligt fram till nästa ].
I perl skulle jag skrivit "\[link=(.*?)\]", men detta fungerar inte i asp.Sv: regexp
Det du vill göra borde gå med VBScript.RegExp!
Set re = Server.CreateObject("VBScript.RegExp")
Username = Request.QueryString("Username")
re.Pattern = "[^a-zA-Z0-9\.\-]"
' only letters, numbers, dots and hyphens
re.Global = true
Username = re.Replace(Username, "")Sv: regexp
<code>
Set regEx = New RegExp ' Create a regular expression.
regEx.Pattern = "\[link=(.*)\]"
RegEx.IgnoreCase = True ' Set case insensitivity.
regEx.Global = True ' Set global applicability.
Text = RegEx.Replace(Text, "($1)")
Set regEx = nothing
</code>
Ditt förslag innebär ingen skillnad, eftersom den kommer att matcha allt fram till den sista hakparentesen. Jag vill att den ska matcha fram till den första.