Sideway BICK BlogSideway BICK BLOG from Sideway

A Sideway to Sideway Home

Link:http://output.to/sideway/default.asp?qno=180500016

Script, Scripting Language, VBScript elements, Server-Side VBScript RegExp Object

VBScript RegExp Object

RegExp Object is a VBScript Object designed for providing simple regular expression support. And three Methods are provided for the manipulation of the regular expression object. Three Properties are provided for the configuartion of the regular expression object.

The returns of Execute Method is a collection of matched objects, that is the Matches Collection. Additional Count Property, and Item Property are provided for accessing the Properties of Matches Collection directly. Although further properties can be accessed through dot notation, another Object called Match Object is defined for manipulating these properties of each matched object.separately.

  • RegExp Mehtods
    • Execute Method
    • Replace Method
    • Test Method
  • RegExp Properties
    • Global Property
    • IgnoreCase Property
    • Pattern Property
    • Execute Method ≡ Matches Collection
      • Count Property
      • Item Property ≡ Match Object
        • FirstIndex Property
        • Length Property
        • Value Property
        • SubMatches Property ≡ SubMatches Collection
          • Count Property
          • Item Property
  • RegExp Collection
    • Execute Method ≡ Matches Collection
      • Item Property ≡ Match Object
        • SubMatches Property ≡ SubMatches Collection

RegExp Object

last updated 12/10/2017

is to provide simple regular expression support

Syntax

Set reobjvar = New RegExp

Requirement

5

RegExp Methods

last updated 12/11/2017

Three Methods are predefined for the RegExp Object, namely, Execute Method, Replace Method, and Test Method. Dot notation is used to access the available Method for an RegExp Object, for example, reobjvar.methodname.

Syntax

reobjvar.Execute(string)
reobjvar.Replace(string1, string2)
reobjvar.Test(string)

RegExp Properties

last updated 12/11/2017

Three Properties are predefined for the RegExp Object, namely, Global Property, IgnoreCase Property, and Pattern Property. Dot notation is used to access the available Property for an RegExp Object, for example, reobjvar.propertyname.

Syntax

reobjvar.Global [= True | False ]
reobjvar.IgnoreCase [= True | False ]
reobjvar.Pattern [= searchstring]

RegExp Collections

last updated 12/11/2017

The output of the Execute Method of RegExp Object is a Collection of Match Objects, namely Matches Collection.

Syntax

Set rematcolvar=reobjvar.Execute(string)

RegExp.Execute Property

last updated 12/11/2017

Two Properties are predefined for the returns of Execute Method of RegExp Object, namely, Count Property, and Item Property. Dot notation is used to access the available Property for the Matches Collection returned by Execute Method of RegExp Object, for example, reobjvar.Execute(str).propertyname.

Syntax

rematcolvar.Count
rematcolvar.Item(key)

Examples

Examples of RegExp Object

ASP VbScript Command:
<script runat="server" language="VBScript">
Dim vars,strs,cmda
cmda=array("strs","regexv.Pattern","re","c","regexv.Global","regexv.IgnoreCase")
Dim ucnt,tmp,i:ucnt=UBound(cmda):If var=1 Then:tmp="":Else:tmp="<b>vars</b>":End If:For i=0 to ucnt:tmp=tmp&"<b>"&rmv_ctrl(cmda(i))&", TypeName</b>":Next:Response.Write "Results on Microsoft Windows 8.1 Pro x64, Microsoft-IIS/8.5, VBScript Version 5.8 of page /internet/users/sideblog/default.asp<br />"&"<i>"&tmp&"</i>"
Function dsp_x:Dim tmp_a,tmp_b,i:If varx=0  Then:Execute vars:End If:If var=1 Then:tmp_a="":Else:tmp_a=rmv_ctrl(vars):End If:For i=0 to ucnt:tmp_b=cmd_b(cmda(i)):if i/2=fix(i/2) Then:tmp_b="<b>"&tmp_b&"</b>":End If:tmp_a=tmp_a&tmp_b:Next:Response.Write "<i>"&tmp_a&"</i>":End Function
Function rmv_ctrl(blk_str):Select Case blk_str:Case chr(0):blk_str="NUL":Case chr(1):blk_str="SOH":Case chr(2):blk_str="STX":Case chr(3):blk_str="ETX":Case chr(4):blk_str="EOT":Case chr(5):blk_str="ENQ":Case chr(6):blk_str="ACK":Case chr(7):blk_str="BEL":Case chr(8):blk_str="BS":Case chr(9):blk_str="HT":Case chr(10):blk_str="LF":Case chr(11):blk_str="VT":Case chr(12):blk_str="FF":Case chr(13):blk_str="CR":Case chr(14):blk_str="SO":Case chr(15):blk_str="SI":Case chr(16):blk_str="DLE":Case chr(17):blk_str="DC1":Case chr(18):blk_str="DC2":Case chr(19):blk_str="DC3":Case chr(20):blk_str="DC4":Case chr(21):blk_str="NAK":Case chr(22):blk_str="SYN":Case chr(23):blk_str="ETB":Case chr(24):blk_str="CAN":Case chr(25):blk_str="EM":Case chr(26):blk_str="SUB":Case chr(27):blk_str="ESC":Case chr(28):blk_str="FS":Case chr(29):blk_str="GS":Case chr(30):blk_str="RS":Case chr(31):blk_str="US":Case chr(127):blk_str="DEL":End Select:rmv_ctrl=blk_str:If IsNull(blk_str) OR IsEmpty(Blk_str) OR blk_str="" OR IsNumeric(Blk_str) Then:Else:rmv_ctrl=Replace(Replace(Replace(Replace(Replace(blk_str,"&","&amp;"),"  "," &nbsp;"),"""","&quot;"),"<","&lt;"),">","&gt;"): End If :End Function
Function cmd_b(blk_str):cmd_b="["&cmd_x(blk_str)&"], "&cmd_x("TypeName("&blk_str&")"):End Function
Function cmd_x(blk_str):On Error Resume Next:Dim xans, tmp:xans="":tmp="":execute "xans="&blk_str:If Err.Number <> 0  Then:xans=cmd_x("TypeName("&blk_str&")"):Select Case xans:Case 9::Case Else:xans="error":End Select:End If:If IsArray(xans)=False Then:cmd_x=rmv_ctrl(xans): Else:tmp=lst_arry(xans):cmd_x=trim(tmp):End If:End Function
Function lst_arry(blk_str):Dim tmp,i,q:q="""":tmp="":For i=0 to UBound(blk_str):if VarType(blk_str(i))>1 And VarType(blk_str(i))<6 Then:q="'":End If:tmp=tmp&" "&q&rmv_ctrl(blk_str(i))&q:Next:lst_arry=trim(tmp):End Function

vars="Set regexv = New RegExp: strs="""": re="""": c=""""":dsp_x
vars="regexv.Pattern=""P"": strs=""PQpqPQ"": re=regexv.Test(strs)":dsp_x
vars="regexv.Pattern=""P"": strs=""PQpqPQ"": c=99: re=regexv.Replace(strs,c)":dsp_x
vars="regexv.Global=True: strs=""PQpqPQ"": c=99: re=regexv.Replace(strs,c)":dsp_x
vars="regexv.IgnoreCase=True: strs=""PQpqPQ"": c=99: re=regexv.Replace(strs,c)":dsp_x
vars="strs=""PQpqPQ"": Set re=regexv.Execute(strs): c=re.Count":dsp_x
vars="regexv.IgnoreCase=False: strs=""PQpqPQ"": Set re=regexv.Execute(strs): c=regexv.Execute(strs).Count":dsp_x
vars="regexv.IgnoreCase=False: strs=""PQpqPQ"": Set re=regexv.Execute(strs): c=regexv.Execute(strs).item(0)":dsp_x
vars="regexv.IgnoreCase=False: strs=""PQpqPQ"": Set re=regexv.Execute(strs): c=regexv.Execute(strs)(0)":dsp_x
vars="regexv.IgnoreCase=False: strs=""PQpqPQ"": Set re=regexv.Execute(strs): c=re.item(0).Length":dsp_x
vars="regexv.IgnoreCase=False: strs=""pQpqpQ"": Set re=regexv.Execute(strs): c=regexv.Execute(strs).Count":dsp_x
vars="regexv.Pattern=""(\S+)(\s+)(\S+)"": strs=""P1Q p2q P3Q"": c=""$3$2$1"": re=regexv.Replace(strs,c)":dsp_x
</script>
HTML Web Page In-line Output:
Results on Microsoft Windows 8.1 Pro x64, Microsoft-IIS/8.5, VBScript Version 5.8 of page /internet/users/sideblog/default.asp
varsstrs, TypeNameregexv.Pattern, TypeNamere, TypeNamec, TypeNameregexv.Global, TypeNameregexv.IgnoreCase, TypeNameSet regexv = New RegExp: strs="": re="": c=""[], String[], String[], String[], String[False], Boolean[False], Booleanregexv.Pattern="P": strs="PQpqPQ": re=regexv.Test(strs)[PQpqPQ], String[P], String[True], Boolean[], String[False], Boolean[False], Booleanregexv.Pattern="P": strs="PQpqPQ": c=99: re=regexv.Replace(strs,c)[PQpqPQ], String[P], String[99QpqPQ], String[99], Integer[False], Boolean[False], Booleanregexv.Global=True: strs="PQpqPQ": c=99: re=regexv.Replace(strs,c)[PQpqPQ], String[P], String[99Qpq99Q], String[99], Integer[True], Boolean[False], Booleanregexv.IgnoreCase=True: strs="PQpqPQ": c=99: re=regexv.Replace(strs,c)[PQpqPQ], String[P], String[99Q99q99Q], String[99], Integer[True], Boolean[True], Booleanstrs="PQpqPQ": Set re=regexv.Execute(strs): c=re.Count[PQpqPQ], String[P], String[IMatchCollection2], IMatchCollection2[3], Long[True], Boolean[True], Booleanregexv.IgnoreCase=False: strs="PQpqPQ": Set re=regexv.Execute(strs): c=regexv.Execute(strs).Count[PQpqPQ], String[P], String[IMatchCollection2], IMatchCollection2[2], Long[True], Boolean[False], Booleanregexv.IgnoreCase=False: strs="PQpqPQ": Set re=regexv.Execute(strs): c=regexv.Execute(strs).item(0)[PQpqPQ], String[P], String[IMatchCollection2], IMatchCollection2[P], String[True], Boolean[False], Booleanregexv.IgnoreCase=False: strs="PQpqPQ": Set re=regexv.Execute(strs): c=regexv.Execute(strs)(0)[PQpqPQ], String[P], String[IMatchCollection2], IMatchCollection2[P], String[True], Boolean[False], Booleanregexv.IgnoreCase=False: strs="PQpqPQ": Set re=regexv.Execute(strs): c=re.item(0).Length[PQpqPQ], String[P], String[IMatchCollection2], IMatchCollection2[1], Long[True], Boolean[False], Booleanregexv.IgnoreCase=False: strs="pQpqpQ": Set re=regexv.Execute(strs): c=regexv.Execute(strs).Count[pQpqpQ], String[P], String[IMatchCollection2], IMatchCollection2[0], Long[True], Boolean[False], Booleanregexv.Pattern="(\S+)(\s+)(\S+)": strs="P1Q p2q P3Q": c="$3$2$1": re=regexv.Replace(strs,c)[P1Q p2q P3Q], String[(\S+)(\s+)(\S+)], String[p2q P1Q P3Q], String[$3$2$1], String[True], Boolean[False], Boolean

Sideway BICK Blog

16/05


Copyright © 2000-2020 Sideway . All rights reserved Disclaimerslast modified on 26 January 2013