diff options
Diffstat (limited to 'jim_tcl.txt')
-rw-r--r-- | jim_tcl.txt | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/jim_tcl.txt b/jim_tcl.txt index 09bd9c4..389522a 100644 --- a/jim_tcl.txt +++ b/jim_tcl.txt @@ -3730,6 +3730,10 @@ The legal options (which may be abbreviated) are: or if the string is composed entirely of ASCII characters. See UTF-8 AND UNICODE. ++*string byterange* 'string first last'+:: + Like `string range` except works on bytes rather than characters. + These commands are identical if UTF-8 support is not enabled. + +*string compare ?-nocase?* 'string1 string2'+:: Perform a character-by-character comparison of strings +'string1'+ and +'string2'+ in the same way as the C 'strcmp' procedure. Return @@ -3799,6 +3803,30 @@ The legal options (which may be abbreviated) are: If UTF-8 support is enabled, this may be different than the number of bytes. See UTF-8 AND UNICODE ++*string map ?-nocase?* 'mapping string'+:: + Replaces substrings in +'string'+ based on the key-value pairs in + +'mapping'+, which is a list of +key value key value \...+ as in the form + returned by `array get`. Each instance of a key in the string will be + replaced with its corresponding value. If +-nocase+ is specified, then + matching is done without regard to case differences. Both key and value may + be multiple characters. Replacement is done in an ordered manner, so the + key appearing first in the list will be checked first, and so on. +'string'+ is + only iterated over once, so earlier key replacements will have no affect for + later key matches. For example, + + string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc + + :: + will return the string +01321221+. + :: + Note that if an earlier key is a prefix of a later one, it will completely mask the later + one. So if the previous example is reordered like this, + + string map {1 0 ab 2 a 3 abc 1} 1abcaababcabababc + + :: + it will return the string +02c322c222c+. + +*string match ?-nocase?* 'pattern string'+:: See if +'pattern'+ matches +'string'+; return 1 if it does, 0 if it doesn't. Matching is done in a fashion similar to that @@ -3813,16 +3841,16 @@ The legal options (which may be abbreviated) are: +?+;; Matches any single character in +'string'+. - +[+'chars'+]+;; + +['chars']+;; Matches any character in the set given by +'chars'+. - If a sequence of the form +'x'+-+'y'+ appears in +'chars'+, + If a sequence of the form +'x-y'+ appears in +'chars'+, then any character between +'x'+ and +'y'+, inclusive, will match. +{backslash}x+;; Matches the single character +'x'+. This provides a way of - avoiding the special interpretation of the characters \`\*?[]\` - in +''+pattern+''+. + avoiding the special interpretation of the characters +{backslash}*?[]+ + in +'pattern'+. :: Performs a case-insensitive comparison if +-nocase+ is specified. @@ -3839,10 +3867,6 @@ The legal options (which may be abbreviated) are: it is treated as if it were +end+. If +'first'+ is greater than +'last'+ then an empty string is returned. -+*string byterange* 'string first last'+:: - Like 'string range' except works on bytes rather than characters. These commands - are identical if UTF-8 support is not enabled - +*string repeat* 'string count'+:: Returns a new string consisting of +'string'+ repeated +'count'+ times. |