Regex Syntax: SSH Patterns

The escape character is a tilde ~. With this you can escape metacharacters to use them in their plain character form.

Tip

In configuration the backslash () is used to escape the list separator (',').

In the following examples literal E and F denote any expression, whether a pattern or a character.

(

Start a capturing subexpression.

)

End a capturing subexpression.

{

Start an anonymous, noncapturing subexpression.

}

End an anonymous, noncapturing subexpression.

E|F

Disjunction, match either E or F (inclusive). E is preferred if both match.

E*

Act as Kleene star, match E zero or more times.

E*?

Act as Kleene star, but match nongreedily (lazy match).

E+

Closure, match E one or more times.

E+?

Closure, but match non-greedily (lazy match).

E?

Option, match E optionally once.

E??

Option, but match non-greedily (lazy match).

.

Match ANY character, including possibly the NULL byte and the newline characters.

E/ n /

Match E exactly n times.

E/ n ,/ or E/ n ,0/

Match E n or more times.

E/, n / or E/0, n /

Match E at most n times.

E/ n , m /

Match E no less than n times and no more than m times.

E/n,/?, E/ n ,0/?, E/, n /?, E/0, n /?, E/ n , m /?

The lazy versions of above.

[

Start a character set. See the section "Escaped Tokens for Regex Syntax SSH.”

>C

One-character lookahead. ‘C’ must be either a literal character or parse as a character set. Match the empty string anywhere provided that the next character is ‘C’ or belongs to it.

<C

One-character lookback. As above, but examine the previous character instead of the next character.

$

Match the empty string at the end of the input.

^

Match the empty string at the start of the input.

Escaped Tokens for Regex Syntax SSH

The following list describes the tokens:

~0 n .. n

The literal byte with octal value n .. n.

~0

The NULL byte.

~[1-9].. x

The literal byte with decimal value ~[1-9].. x.

~ xn .. n or ~0 xn .. n

The literal byte with hexadecimal value n .. n.

~<

Match the empty string at the beginning of a word.

~>

Match the empty string at the end of a word.

~b

Match the empty string at a word boundary.

~B

Match the empty string provided it is not at a word boundary.

~d

Match any digit, equivalent to [0:9].

~D

Match any character except a digit.

~s

Match a whitespace character (matches space, newline, line feed, carriage return, tab, and vertical tab).

~S

Match a nonwhitespace character.

~w

Match a word-constituent character, equivalent to [a:zA:Z0:9-].

~W

Match a non-word-constituent character.

~a

Literal alarm character.

~e

Literal escape character.

~f

Literal line feed.

~n

Literal newline, equivalent to C’s so that it can be more than one character long.

~r

Literal carriage return.

~t

Literal tab.

All other escaped characters denote the literal character itself.

Character Sets for Regex Syntax SSH

A character set starts with '[' and ends at non-escaped ]' that is not part of a POSIX character set specifier and that does not follow immediately after '['.

The following characters have a special meaning and need to be escaped if meant literally:

:

A range operator, except immediately after [, where it loses its special meaning.

- (minus sign)

Until next +, the characters, ranges, and sets will be subtracted from the current set instead of being added. If appears as the first character after [, start subtracting from a set containing all characters instead of the empty set.

Until next -, the characters, ranges, and sets will be added to the current set. This is the default.

[:alnum:]

Characters for which isalnum returns true (see ctype.h).

[:alpha:]

Characters for which isalpha returns true (see ctype.h).

[:cntrl:]

Characters for which iscntrl returns true (see ctype.h).

[:digit:]

Characters for which isdigit returns true (see ctype.h).

[:graph:]

Characters for which isgraph returns true (see ctype.h).

[:lower:]

Characters for which islower returns true (see ctype.h).

[:print:]

Characters for which isprint returns true (see ctype.h).

[:punct:]

Characters for which ispunct returns true (see ctype.h).

[:space:]

Characters for which isspace returns true (see ctype.h).

[:upper:]

Characters for which isupper returns true (see ctype.h).

[:xdigit:]

Characters for which isxdigit returns true (see ctype.h).

It is also possible to include the predefined escaped character sets into a newly defined one, so:

    [~d~s]

matches digits and whitespace characters.

Also, escape sequences resulting in literals work inside character sets.

Example

    [[:xdigit:]-a:e]

is typically equivalent to :

    [0123456789ABCDEFf]
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.15.1