Regular Expression in TCL
Command: regexp [ options ] pattern str [ matchVar ] [ subVar1 subVar2 ... ]
Options: -nocase, -all, -indices
Command returns number of matches in string.
String is checked from L-R, and by default check stops after encountering first match.
if -all is used: pattern scanning doesn't stop after first match, but continues globally till the end of string.
matchVar is a user defined variable and by default stores the last matched sub-string.
if -indices is used: matchVar stores starting and ending index of pattern matched in string.
Example:
% puts [regexp {t.l} "Welcome to tcl class, tcl is fun" var1 ]
1
% puts $var1
tcl
% puts [regexp -all {t.l} "Welcome to tcl class, tcl is fun" var1 ]
2
% puts $var1
tcl
% puts [regexp -all {t.+l} "Welcome to tcl class, tcl is fun" var1 ]
Pattern grouping:
This is where subVar's come into picture.
You can group a part of string and store it in variables.
Done using parenthesis.
Example:
## To store first 2 words in variables name & surname. The parenthesis indicates grouping of patterns.
% regexp {(\w+) (\w+) .*} "MS Dhoni is the best finisher in cricket." var1 name surname
% puts $var1
MS Dhoni is the best finisher in cricket.
% puts $name
Substitutions in Regular Expressions:
Command: regsub [ options ] pattern str replacement_str [ matchVar ]
Options: -all, -nocase
Returns number of replacements.
Original string is not modified.
-all and -nocase options work similar to their description in regexp command options.
If pattern is found in str, that sub-string will be replaced by replacement_str.
Example:
% puts [regsub {perl} "Welcome to perl class, perl is fun" "tcl" var1]
1
% puts $var1
Welcome to tcl class, perl is fun
% puts [regsub -all {perl} "Welcome to perl class, perl is fun" "tcl" var1]
1
% puts $var1
Welcome to tcl class, tcl is fun
Options: -nocase, -all, -indices
Command returns number of matches in string.
String is checked from L-R, and by default check stops after encountering first match.
if -all is used: pattern scanning doesn't stop after first match, but continues globally till the end of string.
matchVar is a user defined variable and by default stores the last matched sub-string.
if -indices is used: matchVar stores starting and ending index of pattern matched in string.
Example:
% puts [regexp {t.l} "Welcome to tcl class, tcl is fun" var1 ]
1
% puts $var1
tcl
% puts [regexp -all {t.l} "Welcome to tcl class, tcl is fun" var1 ]
2
% puts $var1
tcl
% regexp -all -indices {t.l} "Welcome to tcl class, tcl is fun" var1
% puts $var122 24
% puts [regexp -all {t.+l} "Welcome to tcl class, tcl is fun" var1 ]
2
% puts $var1
to tcl class, tcl
Pattern grouping:
This is where subVar's come into picture.
You can group a part of string and store it in variables.
Done using parenthesis.
Example:
## To store first 2 words in variables name & surname. The parenthesis indicates grouping of patterns.
% regexp {(\w+) (\w+) .*} "MS Dhoni is the best finisher in cricket." var1 name surname
% puts $var1
MS Dhoni is the best finisher in cricket.
% puts $name
MS
% puts $surname
Dhoni
Substitutions in Regular Expressions:
Command: regsub [ options ] pattern str replacement_str [ matchVar ]
Options: -all, -nocase
Returns number of replacements.
Original string is not modified.
-all and -nocase options work similar to their description in regexp command options.
If pattern is found in str, that sub-string will be replaced by replacement_str.
Example:
% puts [regsub {perl} "Welcome to perl class, perl is fun" "tcl" var1]
1
% puts $var1
Welcome to tcl class, perl is fun
% puts [regsub -all {perl} "Welcome to perl class, perl is fun" "tcl" var1]
1
% puts $var1
Welcome to tcl class, tcl is fun
« Previous Next »
Comments
Post a Comment