Sign in Join
Wiki copytemporary

IDE regular expressions

English · Español · Français · Polski · Suomi

Normal regular expression

Metacharacters:

pascal
   \   Quote the next metacharacter
   ^   Match the beginning of the line
   .   Match any character (except newline). Example: 'a.c' matches 'abc', 'aBC', 'axc', 'a3c', 'a$c', etc.
   $   Match the end of the line (or before newline at the end)
   |   Alternation
   ()  Grouping. For example: (abc)+ matches 'abc' or 'abcabc' or 'abcabcabc' etc.
   []  Character class. For example [abc], [a-z], [a-zA-Z0-9_]
   [^] Reversed character class. For example [^a-z]

Quantifiers:

text
   *      Match 0 or more times
   +      Match 1 or more times
   ?      Match 1 or 0 times
   {n}    Match exactly n times
   {n,}   Match at least n times
   {n,m}  Match at least n but not more than m times

Curly brackets in any other context is treated as a regular character. The ``*is equivalent to {0,}, the ``+ to {1,} and the ``?'' to {0,1}.

By default, a quantifier is greedy, that means, it will match as many times as possible. To match the minimum number of times possible, append a ``?''.

text
   *?     Match 0 or more times
   +?     Match 1 or more times
   ??     Match 0 or 1 time
   {n}?   Match exactly n times
   {n,}?  Match at least n times
   {n,m}? Match at least n but not more than m times

Simple Syntax

Some IDE dialogs provide a checkbox to choose between simple syntax and regular expressions. The simple syntax is often shorter for common file name filters.

Technically it does this:

pascal
The following characters are replaced with
. -> \.
* -> .*
? -> .
, -> |
; -> |
pascal
Finally enclose by ^( )$

Examples for simple syntax

Quoted symbols

The backslash '\' can be used to treat special characters like '.' as normal character or to get some special ranges.

pascal
\. matches a point '.'
\d matches a number character '0'..'9'
\D matches a non number character
\s matches a space character ' ',#9,#10,#12,#13
\S matches a non space character
\w matches a word character 'a'..'z','A'..'Z','0'..'9','_'
\W matches a non word character
\b word boundary
\B not word boundary
\A begin of line
\Z end of line

Search and Replace with regular expressions

The find dialogs support regular expressions for finding and replacing. Each found pattern grouped in round brackets can be used by a $1, ..., $9 variable

Example 1:

The $1 will be replaced with the found text, that matches the first bracket.

Example 2:

You can also use the following special chars in the replace term

\n
Inserts a Linebreak

\l \u
Lower or Uppercases the next Char. Use this in front of $n. \u$1 Will insert the match from the first brackets, but with its first char made uppercase

\L \U
Lower or Uppercase the full text of the next $n. The $n must follow immediately


From the Free Pascal wiki, page "IDE regular expressions", as it stood on 2022-02-05 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Edited on wiki.freepascal.org by 8 people, 2006–2022

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
Mattias2
Mattias2Search and Replace with regular expressions
Mattias2Round brackets ( )
Mattias2Point .
Mattias2
Mattias2Search and Replace with regular expressions
Mattias2Normal regular expression
Djzepi
Mattias2Simple Syntax
Mattias2Quoted symbols
Mattias2Quoted symbols
Mattias2Quoted symbols
Mattias2Normal regular expression
Mattias2Simple Syntax
Mattias2Examples
MartinSearch and Replace with regular expressions
HowardPCSearch and Replace with regular expressions (minor)
GgeldenhuysExamples for simply syntax: - fixed spelling mistakes (minor)
Jwdietrich
ZaherAdd example 2
TrevRemove categories already included in page template (minor)

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.