init
This commit is contained in:
commit
c5cd492449
475 changed files with 27928 additions and 0 deletions
115
technology/tools/Regex.md
Normal file
115
technology/tools/Regex.md
Normal file
|
@ -0,0 +1,115 @@
|
|||
---
|
||||
obj: concept
|
||||
aliases: ["Regular Expression"]
|
||||
wiki: https://en.wikipedia.org/wiki/Regular_expression
|
||||
---
|
||||
|
||||
# Regex
|
||||
A regular expression (shortened as regex or regexp), is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation.
|
||||
|
||||
## Anchors
|
||||
### `^`
|
||||
Matches the beginning of the string or line.
|
||||
Example: `^word`
|
||||
|
||||
### `$`
|
||||
Matches the end of the string or line.
|
||||
Example: `\.txt$`
|
||||
|
||||
## Flags
|
||||
- `i`: Makes the expression case insensitive
|
||||
- `g`: Ensures that the expression does not stop on the first match
|
||||
|
||||
## Group & References
|
||||
### `()`
|
||||
Groups an expression.
|
||||
Example: `(ha)+`
|
||||
|
||||
### `\1`
|
||||
References a grouped expression. `\1` references the first group, `\2` the second and so on.
|
||||
Example: `(ha)\s\1`
|
||||
|
||||
### `(?:)`
|
||||
Makes a grouping that cannot be referenced.
|
||||
Example: `(?:ha)+`
|
||||
|
||||
## Character Classes
|
||||
### `[abc]`
|
||||
Matches any character in the set.
|
||||
Example: `b[eo]r`
|
||||
|
||||
### `[^abc]`
|
||||
Matches any character not in the set.
|
||||
Example: `b[^eo]r`
|
||||
|
||||
### `[a-z]`
|
||||
Matches all characters between two characters, including themselves.
|
||||
Example: `[e-i]`
|
||||
|
||||
### `.`
|
||||
Matches any character except line breaks.
|
||||
|
||||
### `\w`
|
||||
Matches any alphanumeric character. Including the underline.
|
||||
|
||||
### `\W`
|
||||
Matches any non-alphanumeric character.
|
||||
|
||||
### `\d`
|
||||
Matches any numeric character.
|
||||
|
||||
### `\D`
|
||||
Matches any non-numeric character.
|
||||
|
||||
### `\s`
|
||||
Matches any whitespace character.
|
||||
|
||||
### `\S`
|
||||
Matches any non-whitespace character.
|
||||
|
||||
## Lookarounds
|
||||
### `(?=)`
|
||||
Positive Lookahead.
|
||||
Example: `\d(?=after)`
|
||||
|
||||
### `(?!)`
|
||||
Negative Lookahead.
|
||||
Example: `\d(?!after)`
|
||||
|
||||
### `(?<=)`
|
||||
Positive Lookbehind.
|
||||
Example: `(?<=behind)\d`
|
||||
|
||||
### `(?<!)`
|
||||
Negative Lookbehind.
|
||||
Example: `(?<!behind)\d`
|
||||
|
||||
## Quantifiers And Alternation
|
||||
### `+`
|
||||
Expression matches one or more.
|
||||
Example: `be+r`
|
||||
|
||||
### `*`
|
||||
Expression matches zero or more.
|
||||
Example: `be*r`
|
||||
|
||||
### `{}`
|
||||
Expression matches within specified ranges (matches this many times):
|
||||
- Match exactly: `{4}`
|
||||
- Match minimum: `{4,}`
|
||||
- Match between: `{4,9}`
|
||||
Example: `be{1,2}r`
|
||||
|
||||
### `?`
|
||||
Makes the expression optional or lazy.
|
||||
Example: `colou?r`
|
||||
|
||||
### `|`
|
||||
Works like OR. It waits for one of the expressions it reserved to match.
|
||||
Example: `(c|r)at`
|
||||
|
||||
## Common Regular Expressions
|
||||
- IPv4-Address: `\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}`
|
||||
- MAC-Address: `(?:[0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}`
|
||||
- Hex Color Codes: `^#?([a-fA-F0-9]{6})$`
|
||||
- Mail Address: `^([a-zA-Z0–9._%-]+@[a-zA-Z0–9.-]+\.[a-zA-Z]{2,6})*$`
|
Loading…
Add table
Add a link
Reference in a new issue