In file ../include/EST_Regex.h:

## class EST_Regex

> A Regular expression class to go with the CSTR EST_String class.

## Inheritance:

### Public Methods

  | EST_Regex (void) Empty constructor, just for form
  | EST_Regex (EST_String s) Construct from EST_String
  | EST_Regex (const char* ex) Construct from C string
  | EST_Regex (const EST_Regex &ex) Copy constructor
  | ~EST_Regex () Destructor
  int | size () const Size of the expression
  int | run (const char* on, int from, int &start, int &end, int* starts=NULL, int* ends=NULL) Run to find a matching substring
  int | run_match (const char* on, int from=0, int* starts=NULL, int* ends=NULL) Run to see if it matches the entire string
  EST_String | tostring (void) const Get the expression as a string
  | operator const char * () const Cast operator, disambiguates it for some compilers
  | Assignment
  EST_Regex& | operator = (const EST_Regex ex)
  EST_Regex& | operator = (const EST_String s)
  EST_Regex& | operator = (const char* s)

### Protected Methods

  void | compile () Compile expression
  void | compile_match () Compile expression in a form which only matches whole string
  char* | regularize (int match) const Translate the expression into the internally used syntax

### Inherited from EST_String:

### Public Fields

static const char* version
static const EST_String Empty

Split a string into parts.

int max

### Public Methods

int length(void) const
int space(void) const
const char* str(void) const
char* updatable_str(void)
static EST_String FromChar(const char c)
static EST_String Number(int i, int base=10)
static EST_String Number(long i, int base=10)
static EST_String Number(double d)
static EST_String Number(float f)
int Int(bool &ok) const
long Long(bool &ok) const
float Float(bool &ok) const
double Double(bool &ok) const

Before

EST_String before(int pos, int len=0) const
  Part before position
EST_String before(const char* s, int pos=0) const
  Part before first matching substring after pos
EST_String before(const EST_String &s, int pos=0) const
  Part before first matching substring after pos
EST_String before(EST_Regex &e, int pos=0) const
  Part before first match of regexp after pos

At

EST_String at(int from, int len=0) const
  Return part at position
EST_String at(const char* s, int pos=0) const
  Return part where substring found (not useful, included for completeness)
EST_String at(const EST_String &s, int pos=0) const
  Return part where substring found (not useful, included for completeness)
EST_String at(EST_Regex &e, int pos=0) const
  Return part matching regexp

After

EST_String after(int pos, int len=1) const
  Part after pos+len
EST_String after(const char* s, int pos=0) const
  Part after substring
EST_String after(const EST_String &s, int pos=0) const
  Part after substring
EST_String after(EST_Regex &e, int pos=0) const
  Part after match of regular expression

Search for something

int search(const char* s, int len, int &mlen, int pos=0) const
  Find a substring
int search(const EST_String s, int &mlen, int pos=0) const
  Find a substring
int search(EST_Regex &re, int &mlen, int pos=0, int* starts=NULL, int* ends=NULL) const
  Find a match of the regular expression

Get position of something

int index(const char* s, int pos=0) const
  Position of substring (starting at pos)
int index(const EST_String &s, int pos=0) const
  Position of substring (starting at pos)
int index(EST_Regex &ex, int pos=0) const
  Position of match of regexp (starting at pos)

Does string contain something?

int contains(const char* s, int pos=-1) const
  Does it contain this substring?
int contains(const EST_String &s, int pos=-1) const
  Does it contain this substring?
int contains(const char c, int pos=-1) const
  Does it contain this character?
int contains(EST_Regex &ex, int pos=-1) const
  Does it contain a match for this regular expression?

Does string exactly match?

int matches(const char* e, int pos=0) const
  Exatly match this string?
int matches(const EST_String &e, int pos=0) const
  Exatly match this string?
int matches(EST_Regex &e, int pos=0, int* starts=NULL, int* ends=NULL) const
  Exactly matches this regular expression, can return ends of sub-expressions

Global replacement

int gsub(const char* os, const EST_String &s)
  Substitute one string for another
int gsub(const char* os, const char* s)
  Substitute one string for another
int gsub(const EST_String &os, const EST_String &s)
  Substitute one string for another
int gsub(const EST_String &os, const char* s)
  Substitute one string for another
int gsub(EST_Regex &ex, const EST_String &s)
  Substitute string for matches of regular expression
int gsub(EST_Regex &ex, const char* s)
  Substitute string for matches of regular expression
int gsub(EST_Regex &ex, int bracket_num)
  Substitute string for matches of regular expression
int subst(EST_String source, int (&starts)[EST_Regex_max_subexpressions], int (&ends)[EST_Regex_max_subexpressions])
  Substitute the result of a match into a string

Frequency counts

int freq(const char* s) const
  Number of occurances of substring
int freq(const EST_String &s) const
  Number of occurances of substring
int freq(EST_Regex &s) const
  Number of matches of regular expression

Quoting

EST_String quote(const char quotec) const
  Return the string in quotes with internal quotes protected
EST_String quote_if_needed(const char quotec) const
  Return in quotes if there is something to protect (eg.
EST_String unquote(const char quotec) const
  Remove quotes and unprotect internal quotes
EST_String unquote_if_needed(const char quotec) const
  Remove quotes if any

Operators

const char operator () (int i) const
  Function style access to constant strings
char& operator [] (int i)
  Array style access to writable strings
operator const char*() const
  Cast to const char * by simply giving access to pointer
operator char*()
  Cast to char *, may involve copying
Add to end of string.

EST_String& operator += (const char* b)
  Add C string to end of EST_String
EST_String& operator += (const EST_String b)
  Add EST_String to end of EST_String

Asignment

EST_String& operator = (const char* str)
  Assign C string to EST_String
EST_String& operator = (const char c)
  Assign single character to EST_String
EST_String& operator = (const EST_String &s)
  Assign EST_String to EST_String

Concatenation
relational operators

return b
return(a==b)
return compare(a, b)

String comparison.

return compare(b, a)
Case folded comparison.

const EST_String& table return fcompare(a, b, (const unsigned char* )(const char* )table)

static EST_String cat(const EST_String s1, const EST_String s2 = Empty, const EST_String s3 = Empty, const EST_String s4 = Empty, const EST_String s5 = Empty, const EST_String s6 = Empty, const EST_String s7 = Empty, const EST_String s8 = Empty, const EST_String s9 = Empty )

### Public

typedef int EST_string_size
#define MAX_STRING_SIZE(INT_MAX)

## Documentation

> A Regular expression class to go with the CSTR EST_String class.

> The regular expression syntax is the FSF syntax used in emacs and in the FSF String library. This is translated into the syntax supported by Henry Spensor's regular expression library, this translation is a place to look if you find regular expressions not matching where expected.

`void compile()`
  Compile expression

`void compile_match()`
  Compile expression in a form which only matches whole string

`char* regularize(int match) const`
  Translate the expression into the internally used syntax

`EST_Regex(void)`
  Empty constructor, just for form

`EST_Regex(EST_String s)`
  Construct from EST_String

`EST_Regex(const char* ex)`
  Construct from C string

`EST_Regex(const EST_Regex &ex)`
  Copy constructor

`~EST_Regex()`
  Destructor

`int size() const`
  Size of the expression

`int run(const char* on, int from, int &start, int &end, int* starts=NULL, int* ends=NULL)`
  Run to find a matching substring

`int run_match(const char* on, int from=0, int* starts=NULL, int* ends=NULL)`
  Run to see if it matches the entire string

`EST_String tostring(void) const`
  Get the expression as a string

`operator const char *() const`
  Cast operator, disambiguates it for some compilers

`Assignment`

`EST_Regex& operator = (const EST_Regex ex)`

`EST_Regex& operator = (const EST_String s)`

`EST_Regex& operator = (const char* s)`

This class has no child classes.

Friends:
  ostream &operator << (ostream &s, const EST_Regex &str)
Author:
  Richard Caley <rjc@cstr.ed.ac.uk> (regular expression library by Henry Spencer, University of Toronto)
Version:
See Also:
  EST_String
  string_example

Alphabetic index HTML hierarchy of classes or Java

This page is part of the Edinburgh Speech Tools Library documentation
Copyright University of Edinburgh 1997
Contact: speech_tools@cstr.ed.ac.uk