TRegExpr library implements regular expressions.
Regular expressions are easy to use and powerful tool for sophisticated search and substitution and for template based text check.
It is especially useful for user input validation in input forms - to validate e-mail addresses and so on.
Also you can extract phone numbers, ZIP-codes etc from web-pages or documents, search for complex patterns in log files and all you can imagine. Rules (templates) can be changed without your program recompilation.
TRegExpr is implemented in pure Pascal. It’s included into Lazarus (Free Pascal) project. But also it exists as separate library and can be compiled by Delphi 2-7, Borland C++ Builder 3-6.
To use the library just add the sources to you project and use the class TRegExpr.
In the FAQ you can learn from others users problems.
Ready to run Windows application REStudio will help you learn and debug regular expressions.
If you see any problems, please create the bug.
Pure Object Pascal.
- Regular expressions (RegEx)
- I found a terrible bug: TRegExpr raises Access Violation exception!
- Regular expressions with (?=…) do not work
- Does it support Unicode?
- Why does TRegExpr return more then one line?
- Why does TRegExpr return more then I expect?
- How to parse sources like HTML with help of TRegExpr?
- Is there a way to get multiple matches of a pattern on TRegExpr?
- I am checking user input. Why does TRegExpr return
Truefor wrong input strings?
- Why does non-greedy iterators sometimes work as in greedy mode?
- How can I use TRegExpr with Borland C++ Builder?
- Why many r.e. (including r.e. from TRegExpr help and demo) work wrong in Borland C++ Builder?
The documentation is available in English and Russian.
There are also old translations to German, Bulgarian, French and Spanish. If you want to help to update this old translations please contact me.
New translations are based on GetText and can be edited with Weblate.
They are already machine-translated and need only proof-reading and may be some copy-pasting from old translations.
Many features suggested and a lot of bugs founded (and even fixed) by TRegExpr’s contributors.
I cannot list here all of them, but I do appreciate all bug-reports, features suggestions and questions that I am receiving from you.
- Alexey Torgashin - added many features in 2019-2020, e.g. named groups, non-capturing groups, assertions, backward search
- Guido Muehlwitz - found and fixed ugly bug in big string processing
- Stephan Klimek - testing in C++Builder and suggesting/implementing many features
- Steve Mudford - implemented Offset parameter
- Martin Baur (www.mindpower.com) - German translation, usefull suggestions
- Yury Finkel - implemented Unicode support, found and fixed some bugs
- Ralf Junker - implemented some features, many optimization suggestions
- Simeon Lilov - Bulgarian translation
- Filip Jirsбk and Matthew Winter - help in implementation non-greedy mode
- Kit Eason - many examples for introduction help section
- Juergen Schroth - bug hunting and useful suggestions
- Martin Ledoux - French translation
- Diego Calp, Argentina - Spanish translation