32 lines
997 B
Plaintext
32 lines
997 B
Plaintext
> with( StringTools ): # bind package exports at the top-level
|
|
> s := "dzrIemaWWIMidXYZwGiqkOOn":
|
|
> s[1..4]; # pick a prefix
|
|
"dzrI"
|
|
|
|
> IsPrefix( s[ 1 .. 4 ], s ); # check it
|
|
true
|
|
|
|
> s[ -4 .. -1 ]; # pick a suffix
|
|
"kOOn"
|
|
|
|
> IsSuffix( s[ -4 .. -1 ], s ); # check it
|
|
true
|
|
|
|
> p := Search( "XYZ", s ); # find a substring
|
|
p := 14
|
|
|
|
> s[ p .. p + 2 ]; # check
|
|
"XYZ"
|
|
|
|
> SearchAll( [ "WWI", "XYZ" ], s ); # search for multiple patterns
|
|
[8, 1], [14, 2]
|
|
|
|
> to 3 do s := cat( s, s ) end: length( s ); # build a longer string by repeated doubling
|
|
192
|
|
|
|
> p := SearchAll( "XYZ", s ); # find all occurrences
|
|
p := 14, 38, 62, 86, 110, 134, 158, 182
|
|
|
|
> {seq}( s[ i .. i + 2 ], i = p ); # check them
|
|
{"XYZ"}
|