Character ClassΒΆ

The CharacterClass domain allows classes of characters to be defined and manipulated efficiently.

Character classes can be created by giving either a string or a list of characters.

cl1:=charClass[char "a",char "e",char "i",char "o",char "u",char "y"]
 "aeiouy"
                    Type: CharacterClass

cl2 := charClass "bcdfghjklmnpqrstvwxyz"
 "bcdfghjklmnpqrstvwxyz"
                    Type: CharacterClass

A number of character classes are predefined for convenience.

digit()
 "0123456789"
                    Type: CharacterClass

hexDigit()
 "0123456789ABCDEFabcdef"
                    Type: CharacterClass

upperCase()
 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                    Type: CharacterClass

lowerCase()
 "abcdefghijklmnopqrstuvwxyz"
                    Type: CharacterClass

alphabetic()
 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
                    Type: CharacterClass

alphanumeric()
 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
                    Type: CharacterClass

You can quickly test whether a character belongs to a class.

member?(char "a", cl1)
 true
                    Type: Boolean

member?(char "a", cl2)
 false
                    Type: Boolean

Classes have the usual set operations because the CharacterClass domain belongs to the category FiniteSetAggregate(Character).

intersect(cl1, cl2)
 "y"
                    Type: CharacterClass

union(cl1,cl2)
 "abcdefghijklmnopqrstuvwxyz"
                    Type: CharacterClass

difference(cl1,cl2)
 "aeiou"
                    Type: CharacterClass

intersect(complement(cl1),cl2)
 "bcdfghjklmnpqrstvwxz"
                    Type: CharacterClass

You can modify character classes by adding or removing characters.

insert!(char "a", cl2)
 "abcdfghjklmnpqrstvwxyz"
                    Type: CharacterClass

remove!(char "b", cl2)
 "acdfghjklmnpqrstvwxyz"
                    Type: CharacterClass

See Also:

  • )help Character
  • )help String
  • )show CharacterClass

Table Of Contents

This Page