(regex) added nonexhaustive tables for regex

This commit is contained in:
scbj
2026-08-07 09:51:13 +02:00
parent 0404430004
commit 86a9c7b916
+102
View File
@@ -0,0 +1,102 @@
# regular expressions
What regular expression do tools use?
| **tool** | **regular expression type** |
|:----------|:------------------------------|
| *awk* | extended posix |
| csplit | basic posix |
| dbx | basic posix |
| dbxtool | basic posix |
| ed | basic posix |
| egrep | extended posix |
| emacs | emacs regular expression |
| expr | basic posix |
| *grep* | basic posix |
| lex | basic posix |
| more | basic posix |
| nawk | extended posix |
| nl | basic posix |
| perl | perl regular expression |
| pg | basic posix |
| rdist | basic posix |
| *sed* | basic posix |
| *ugrep* | extended posix |
| vi | basic posix |
# basic **posix** regular expression
..
# (extended) **posix** regular expression
+---------------+-----------+---------------+---------------------------+
| **character** | **class** | **type** | **description** |
+:==============+:==========+:==============+:==========================+
| `.` | all | character set | match any character |
| | | | (except newline) |
+---------------+-----------+---------------+---------------------------+
| `^` | all | anchor | start of line |
+---------------+-----------+---------------+---------------------------+
| `$` | all | anchor | end of line |
+---------------+-----------+---------------+---------------------------+
| `[...]` | all | character set | list/range of characters |
+---------------+-----------+---------------+---------------------------+
| `*` | all | quantifier | zero or more occurences |
+---------------+-----------+---------------+---------------------------+
| `\<` | all | anchor | start of word |
+---------------+-----------+---------------+---------------------------+
| `\>` | all | anchor | end of word |
+---------------+-----------+---------------+---------------------------+
| `\(..\)` | all | backreference | remember pattern for |
| | | | referencing (positional) |
+---------------+-----------+---------------+---------------------------+
| `\1..\9` | all | reference | reference to numbered |
| | | | pattern (positional) |
+---------------+-----------+---------------+---------------------------+
+---------------+-----------+---------------+---------------------------+
| `+` | extended | quantifier | one or more occurences |
+---------------+-----------+---------------+---------------------------+
| `?` | extended | quantifier | zero or one occurence |
+---------------+-----------+---------------+---------------------------+
| `\{M,N\}` | extended | quantifier | M to N occurences |
+---------------+-----------+---------------+---------------------------+
| `(...|...)` | extended | pattern | match multiple patterns |
+---------------+-----------+---------------+---------------------------+
# posix character sets
+-------------------+---------------------------------------------------+
| **character set** | **description** |
+-------------------+---------------------------------------------------+
| `[:alnum:]` | alphanumeric characters |
+-------------------+---------------------------------------------------+
| `[:ascii:]` | ascii characters |
+-------------------+---------------------------------------------------+
| `[:cntrl:]` | control characters (0x00..0x1F, 0x7F) |
+-------------------+---------------------------------------------------+
| `[:lower:]` | lower case letters |
+-------------------+---------------------------------------------------+
| `[:upper:]` | upper case letters |
+-------------------+---------------------------------------------------+
| `[:space:]` | whitespace characters including line breaks |
+-------------------+---------------------------------------------------+
| `[:alpha:]` | letters |
+-------------------+---------------------------------------------------+
| `[:digit:]` | digits |
+-------------------+---------------------------------------------------+
| `[:print:]` | printable characters, anything except control |
| | characters |
+-------------------+---------------------------------------------------+
| `[:blank:]` | space and tabulator |
+-------------------+---------------------------------------------------+
| `[:graph:]` | visible characters, anything except control |
| | characters and whitespace |
+-------------------+---------------------------------------------------+
| `[:punct:]` | punctuation characters (and symbols) |
+-------------------+---------------------------------------------------+
| `[:xdigit:]` | hexadecimal digits |
+-------------------+---------------------------------------------------+