Anonymous user
Regular expressions: Difference between revisions
→{{header|zkl}}: update
(add UNIX Shell) |
(→{{header|zkl}}: update) |
||
Line 2,054:
=={{header|zkl}}==
The build in RE engine is a basic one.<br/>
Strings are immutable so replacement is creation.
<lang zkl>var re=RegExp(".*string$");
re.matches("I am a string") //-->True
var s="I am a string thing"
re=RegExp("(string)") // () means group, ie if you see it, save it
re.search(s,True) //-->True, .search(x,True) means search for a match, ie don't need .*
p,n:=re.matched[0] //.matched-->
String(s[0,p],"FOO",s[p+n,*]) //-->"I am a FOO thing"
re.search(s,True); // using .matched clears it
m:=re.matched[1];
s.replace(m,"FOO"); // -->"I am a FOO thing"</lang>
Using a mutable byte bucket
<lang zkl>var s=Data(0,Int,"I am a string thing");
re.search(s,True);
p,n:=re.matched[0];
s[p,n]="FOO";
s.text //-->"I am a FOO thing"</lang>
{{omit from|BASIC}}
|