expand a character class to a string
ExpandCharacterClass( ccl )
string; character class expression
The ExpandCharacterClass(ccl) command expands character class expressions as described in the following section. These expressions are used to describe sets of characters in wildcard and regular expression patterns, but may be used for other purposes as well.
If the string ccl is a valid character class expression, then a string, with at most 255 characters, is returned that denotes literally the expressed character class.
In a character class expression, most characters denote themselves literally. For example, the character class expression abc denotes the character class consisting of the characters a, b and c, which is represented by the string abc. Likewise, the string bca, interpreted as a character class expression, denotes the character class abc, the only difference being the order in which the characters are presented. By convention, literal character classes are returned in code point order.
If a character in a character class expression is preceded by a backslash, it is escaped, meaning that any special significance attached to it for character class expressions is suppressed (for that specific instance in the expression only).
The first and last characters in a character class expression can be open and close brackets ([ and ]), respectively. In this case, the expression is equivalent to the one obtained by removing the first and last characters. If either of the characters [ and ] appear anywhere but at the beginning and end, respectively, of the character class expression, they are taken literally. For example, [ab]de] is equivalent to ab]de.
A consecutive range of characters is denoted by an interposed hyphen (-). For example, a-d represents the character class abcd. The character to the left of the hyphen must precede the character to its right, in code point order. Thus, for example, z-a is invalid.
Character literals and ranges may be juxtaposed in a character class expression. For example, a-cwxyzd-h is a valid character class expression which expands to the literal character class abcdefghwxyz.
Negated Character Classes
If the first character in a character class expression is a caret (^) (or, if the character class expression is enclosed in brackets, and the caret follows the opening bracket), then the resulting character class is negated. This means that the character class expression expands to the set of characters not in the class described by the rest of the expression.
Named Character Classes
If the first and last characters of a character class expression are colons (:), the character between them are taken to form the name of a named character class. Such an expression expands to the literal character class denoted by the named class.
The following named character classes are recognized.
alphabetic characters and digits
ASCII (7-bit) characters
"0" and "1"
hexadecimal digits (both cases)
leading identifier characters
octal digits (0-7)
vowels (both cases)
All of the StringTools package commands treat strings as (null-terminated) sequences of 8-bit (ASCII) characters. Thus, there is no support for multibyte character encodings, such as unicode encodings.
ExpandCharacterClass( cat( "^", Iota( 1, 32 ), Iota( 120, 255 ) ) );
Download Help Document