کد شناسایی و Highlight زبان ویژوال بیسیک:
Protected Friend Shared Keywords As String() = {"addhandler", "addressof", "alias", "and",
"andalso", "as", "boolean", "byref", "byte", "byval" _
, "call", "case", "catch", "cbool", "cbyte", "cchar", "cdate", "cdec", "cdbl", "char", "cint", "class" _
, "clng", "cobj", "const", "continue", "csbyte", "cshort", "csng", "cstr", "ctype", "cuint", "culng" _
, "cushort", "date", "decimal", "declare", "default", "delegate", "dim", "directcast", "do", "double" _
, "each", "else", "elseif", "end", "endif", "enum", "erase", "error", "event", "exit", "false", "finally" _
, "for", "friend", "function", "get", "gettype", "getxmlnamespace", "global", "gosub", "goto", "handles", "if" _
, "implements", "imports", "in", "inherits", "integer", "interface", "is", "isnot", "let", "lib", "like" _
, "long", "loop", "me", "mod", "module", "mustinherit", "mustoverride", "mybase", "myclass", "namespace" _
, "narrowing", "new", "next", "not", "nothing", "notinheritable", "notoverridable", "object", "of" _
, "on", "operator", "option", "optional", "or", "orelse", "overloads", "overridable", "overrides" _
, "paramarray", "partial", "private", "property", "protected", "public", "raiseevent", "readonly" _
, "redim", "removehandler", "resume", "return", "sbyte", "select", "set", "shadows", "shared" _
, "short", "single", "static", "step", "stop", "string", "structure", "sub", "synclock", "then", "throw" _
, "to", "true", "try", "trycast", "typeof", "variant", "wend", "uinteger", "ulong", "ushort", "using" _
, "when", "while", "widening", "with", "withevents", "writeonly", "xor", "#const", "#else", "#elseif" _
, "#end", "#if", "aggregate", "ansi", "assembly", "auto", "binary", "compare", "custom", "distinct" _
, "equals", "explicit", "from", "group", "by", "join", "into", "isfalse", "istrue", "key" _
, "mid", "off", "order", "preserve", "skip", "strict", "take", "text", "unicode" _
, "until", "where", "#externalsource", "#region", "region", "ushort", "uint16", "uint64", "uint32", "int16" _
, "int64", "int32", "datetime", "infer", "type", "my"}
Private Shared KeywordMatch As New Regex("\b(\w+\(*?)|(\S+)(\)?|\s?)") '\b(\S+)\s? ' \G\(\d\)
Shared Sub Highlight(ByRef Expression As String)
Dim Expr As String = Expression
Dim X, Start As Integer, newValue As String
Start = 0
Restart: With KeywordMatch.Matches(Expr, Start)
For X = 0 To .Count - 1
With .Item(X)
newValue = If(.Value.EndsWith(")"), .Value.Remove(.Value.Length - 1, 1), .Value)
newValue = If(newValue.StartsWith("("), newValue.Remove(0, 1), newValue)
If Keywords.Contains(newValue.Trim.ToLower) Then
Dim Value As String = String.Format("<kw>{0}</kw>{1}",
StrConv(newValue, VbStrConv.ProperCase),
If(.Value.EndsWith(")"), ")", ""))
If .Value.StartsWith("(") Then Value = Value.Insert(0, "(")
Expr = Expr.Remove(.Index, .Length)
Expr = Expr.Insert(.Index, Value)
Start = .Index + Value.Length
GoTo Restart
End If
End With
Next
End With
Expression = Expr
End Sub