markdown [Regex Cheatsheet] #regex
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown [Regex Cheatsheet] #regex相关的知识,希望对你有一定的参考价值。
# Regular Expressions
## Basic Syntax
- `/.../`: Start and end regex delimiters
- `|`: Alternation
- `()`: Grouping
## Position Matching
- `^`: Start of string or start of line in multi-line mode
- `\A`: Start of string
- `$`: End of string or end of line in multi-line mode
- `\Z`: End of string
- `\b`: Word boundary
- `\B`: Not word boundary
- `\<`: Start of word
- `\>`: End of word
## Character Classes
- `\s`: Whitespace
- `\S`: Not whitespace
- `\w`: Word
- `\W`: Not word
- `\d`: Digit
- `\D`: Not digit
- `\x`: Hexadecimal digit
- `\O`: Octal digit
## Special Characters
- `\n`: Newline
- `\r`: Carriage return
- `\t`: Tab
- `\v`: Vertical tab
- `\f`: Form feed
- `\xxx`: Octal character xxx
- `\xhh`: Hex character hh
## Groups and Ranges
- `.`: Any character except newline (\n)
- `(a|b)`: a or b
- `(…)`: Group
- `(?:…)`: Passive (non-capturing) group
- `[abc]`: a, b or c
- `[^abc]`: Not a, b or c
- `[a-z]`: Letters from a to z
- `[A-Z]`: Uppercase letters from A to Z
- `[0-9]`: Digits from 0 to 9
> Note: Ranges are inclusive.
## Quantifiers
- `*`: 0 or more
- `+`: 1 or more
- `?`: 0 or 1
- `{3`: Exactly 3
- `{3,}`: 3 or more
- `{3,5}`: 3, 4 or 5
> Note: Quantifiers are greedy - they match as many times as possible. Add a ? after the quantifier to make it ungreedy.
## Escape Sequences
- `\`:Escape following character. Used to escape any of the following metacharacters: {}[]()^$.|*+?\.
- `\Q`: Begin literal sequence
- `\E`: End literal sequence
## String Replacement
- `$1`: 1st group
- `$2`: 2nd group
- `$n`: nth group
- `$``: Before matched string
- `$'`: After matched string
- `$+`: Last matched string
- `$&`: Entire matched string
> Note: Some regex implementations use \ instead of $.
## Assertions
- `?=`: Lookahead assertion
- `?!`: Negative lookahead
- `?<=`: Lookbehind assertion
- ``?!=, ?<!``: Negative lookbehind
- `?>`: Once-only subexpression
- `?()`: Condition if-then
- `?()|`: Condition if-then-else
- `?#`: Comment
## POSIX
- `[:upper:]`: Uppercase letters
- `[:lower:]`: Lowercase letters
- `[:alpha:]`: All letters
- `[:alnum:]`: Digits and letters
- `[:digit:]`: Digits
- `[:xdigit:]`: Hexadecimal digits
- `[:punct:]`: Punctuation
- `[:blank:]`: Space and tab
- `[:space:]`: Blank characters
- `[:cntrl:]`: Control characters
- `[:graph:]`: Printed characters
- `[:print:]`: Printed characters and spaces
- `[:word:]`: Digits, letters and underscore
## Pattern Modifiers
- `g`: Global match
- `i`: Case-insensitive
- `m`: Multi-line mode. Causes ^ and $ to also match the start/end of lines.
- `s`: Single-line mode. Causes . to match all, including line breaks.
- `x`: Allow comments and whitespace in pattern
- `e`: Evaluate replacement
- `U`: Ungreedy mode
## 8 REGULAR EXPRESSIONS YOU SHOULD KNOW:
- Matching a Username: `/^[a-z0-9_-]{3,16}$/`
- Matching a Password: `/^[a-z0-9_-]{6,18}$/`
- Matching a Hex Value: `/^#?([a-f0-9]{6}|[a-f0-9]{3})$/`
- Matching a Slug: `/^[a-z0-9-]+$/`
- Matching an Email: `/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/`
- Matching a URL: `/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/`
- Matching an IP Address: `/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/`
- Matching an HTML Tag: `/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/`
以上是关于markdown [Regex Cheatsheet] #regex的主要内容,如果未能解决你的问题,请参考以下文章
markdown 使用bash和regex在一行中查找并终止进程