jEdit uses regular expressions to implement inexact search and replace. A regular expression consists of a string where some characters are given special meaning with regard to pattern matching.
Within a regular expression, the following characters have special meaning:
^
matches at the beginning of a line
$
matches at the end of a line
\b
matches at a word break
\B
matches at a non-word break
\<
matches at the start of a word
\>
matches at the end of a word
.
matches any single character
\d
matches any decimal digit
\D
matches any non-digit
\n
matches the newline character
\s
matches any whitespace character
\S
matches any non-whitespace character
\t
matches a horizontal tab character
\w
matches any word (alphanumeric) character
\W
matches any non-word (alphanumeric)
character
\\
matches the backslash
(“\”) character
[
matches
any character in
the set abc
]a
, b
or
c
[^
matches
any character not
in the set abc
]a
, b
or
c
[
matches
any character in the
range a-z
]a
to z
, inclusive.
A leading or trailing dash will be interpreted literally
[[:alnum:]]
matches any alphanumeric
character
[[:alpha:]]
matches any alphabetical character
[[:blank:]]
matches a space or horizontal tab
[[:cntrl:]]
matches a control character
[[:digit:]]
matches a decimal digit
[[:graph:]]
matches a non-space, non-control character
[[:lower:]]
matches a lowercase letter
[[:print:]]
same as [[:graph:]]
, but also space and tab
[[:punct:]]
matches a punctuation character
[[:space:]]
matches any whitespace character, including newlines
[[:upper:]]
matches an uppercase letter
[[:xdigit:]]
matches a valid hexadecimal digit
(
matches
whatever the expression
abc
)abc
would match, and saves it as a subexpression.
Also used for grouping
(?:
pure
grouping operator, does not
save contents...
)
(?#
embedded
comment, ignored by engine...
)
(?=
positive
lookahead; the regular expression will match if the text in the brackets
matches, but that text will not be considered part of the match...
)
(?!
negative
lookahead; the regular expression will match if the text in the brackets
does not
match, and that text will not be considered part of the match...
)
\
where 0 <
n
n
< 10,
matches the same thing the n
th
subexpression matched. Can only be used in the search string
$
where 0 <
n
n
< 10,
substituted with the text matched by the n
th
subexpression. Can only be used in the replacement string
matches whatever the expression a
|b
a
would match, or whatever
the expression b
would match.
These symbols operate on the previous atomic expression.
?
matches the preceding expression or the
null string
*
matches the null string or any number of repetitions
of the preceding expression
+
matches one or more repetitions of the preceding
expression
{
matches exactly
m
}m
repetitions of the one-character expression
{
matches between
m
,n
}m
and n
repetitions of the preceding
expression, inclusive
{
matches
m
,}m
or more
repetitions of the preceding expression
If a repeating operator (above) is immediately followed by a
?
, the repeating operator will stop at the smallest
number of repetitions that can complete the rest of the match.