parse +-,-"CURRENT"--+ >>-parse(-Pattern-+--------------+------------------------->< +-,-"MAXIMAL"--+ +-,-"MINIMAL"--+ This method creates the matcher used to match a string from the regular expression specified with Pattern. The RegularExpression object uses this regular expression until a new invocation of Parse takes place. The second (optional) parameter specifies whether to use minimal or maximal matching. The default is to use the current matching behavior. [Return values:]
Class REGULAREXPRESSION - parse method a.0 = "does not match regular expression" a.1 = "matches regular expression" b = .array~of("This is a nice flower.", "This is a yellow flower.", , "This is a blue flower.", "Hi there!") myRE = .RegularExpression~new e = myRE~parse("This is a ???? flower.") if e == 0 then do do i over b j = myRE~match(i) say i~left(24) ">>" a.j end end else say "Error" e "occurred!" exit ::requires "rxregexp.cls" Output: This is a nice flower. >> Does match regular expression This is a yellow flower. >> Does not match regular expression This is a blue flower. >> Does match regular expression Hi there! >> Does not match regular expression Class REGULAREXPRESSION - parse method a.0 = "an invalid number!" a.1 = "a valid number." b = .array~of("1","42","0","5436412","1a","f43g") myRE = .RegularExpression~new("[1-9][0-9]*") do i over b j = myRE~match(i) say i "is" a.j end say /* Now allow "hex" numbers and a single 0 */ if myRE~parse("0|([1-9a-f][0-9a-f]*)") == 0 then do do i over b j = myRE~match(i) say i "is" a.j end end else say "invalid regular expression!" exit ::requires "rxregexp.cls" Class REGULAREXPRESSION - parse method str = "<p>Paragraph 1</p><p>Paragraph 2</p>" myRE1 = .RegularExpression~new("<p>?*</p>","MINIMAL") myRE1~match(str) myRE2 = .RegularExpression~new("<p>?*</p>","MAXIMAL") myRE2~match(str) say "myRE1 (minimal) matched" str~substr(1,myRE1~position) say "myRE2 (maximal) matched" str~substr(1,myRE2~position) ::requires "rxregexp.cls" Output: myRE1 (minimal) matched <p>Paragraph 1</p> myRE2 (maximal) matched <p>Paragraph 1</p><p>Paragraph 2</p> |
||||||||||||