Delphi Inspiration – Delphi Components and Software Applications

DIRegEx

DIRegEx is a library of Delphi (Embarcadero / CodeGear / Borland) components and procedures that implement regular expression pattern matching using the same syntax and semantics as Perl 5.10, with just a few differences. This includes support for UTF-8 encoded strings and Unicode general category properties.

DIRegEx offers two regular expression algorithms with their corresponding wrapper classes for easy usage:

  • TDIPerlRegEx implements a matching algorithm with the same syntax and semantics as Perl. Consider this the standard algorithm which you are used to from Perl and JavaScript. It is very fast and supports the complete pattern syntax. You will very likely be using it most of the time.
  • TDIDfaRegEx implements the DFA matching algorithm. Considerer this as a special purpose algorithm. If finds all possible matches and in particular, it finds the longest. It never needs to backtrack and supports partial matching much better, even for very long subject strings in several pieces.

The DIRegEx Search Stream Demo ApplicationBoth classes descend from a common ancestor TDIRegEx which implements the complete functionality for working with regular expressions, regardless of which algorithm is currently in effect:

  • Matching and extraction of matches / substrings from the source text.
  • Searching for regular expressions within streams and memory buffers. To search within streams or files (of virtually unlimited size), use one of the specially optimized TDIRegExSearchStream class descendents.
  • Replacements on full and partial matches / substrings.
  • Listing of full and partial matches / substrings.
  • Formatting of matches.

Syntax Implemented

Additional Features

DIRegEx can do a Format and Replace based on regular expressions, a feature often required for advanced text editors and word processors. It is possible to include parts of the originally matched text into the replacement.

The List function concatenates all reg-ex matches to a single string. It allows to build lists of phone numbers, e-mail addresses, etc. with a single function call only.

RegEx Mask Controls

The DIRegEx Mask Controls Demo ApplicationDIRegEx also includes two regular expression edits: TDIRegExMaskEdit and TDIRegExComboBox. Both controls validate all keyboard input against a regular expression pattern. They work similar to Delphi's TMaskEdit, but are much more flexible and powerful.

The regular expression mask controls allow to:

  • Accept / reject certain characters at certain positions.
  • Allow / reject particular characters if they follow any character(s) of your choice.
  • Force the input text to begin / end with any character(s).
  • Not accept particular characters at the beginning / end of the input text.
  • Plus many more countless possibilities …

DIRegExMaskEdit

TDIRegExMaskEdit is an edit control that validates all keyboard input on a keystroke by keystroke basis. It accepts characters entered only if the new text matches the regular expression mask pattern. If the new text does not match, the character is silently rejected.

DIRegExMaskComboBox

TDIRegExMaskComboBox is a combo box control with essentially the same regular expression validation as TDIRegExMaskEdit.

Workbench Application

The DIRegEx Workbench helps you to design and test your regular expressions. It allows to set all available options, measure execution times, and to save and load all settings for later use.

The DIRegEx Workbench is available as a

  • Design-Time Component Editor
  • Standalone Application
products/regex/index.txt · Last modified: 2010/03/27 15:33 (external edit)