Regular expressions: Difference between revisions

(add UNIX Shell)
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--> L(L(7,6),"string")
String(s[0,p],"FOO",s[p+n,*]) //-->"I am a FOO thing"</lang>
 
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}}
Anonymous user