til/Knowledge/regex.md

1.7 KiB

Regular expression

Read Syntax.

Read Golang-Regex-Tutorial.

Play with Regex101.

Basic

regex meaning
. any character, default not including \n
[xy] x or y character
[^xy] not x and y character
x|y x or y
x* 0 or more x, prefer more
x+ 1 or more x, prefer more
x? 0 or 1 x , prefer 1
x*? 0 or more x, prefer fewer
x+? 1 or more x, prefer fewer
^ at beginning of text
$ at end of text
\d digits
\D not digits
\s whitespace
\S not whitespace
(foo) numbered capturing group (submatch)
(?:foo) non capturing group
(?:x|y) x or y expression wrap in ()
(?flags) set flags within current group
flag meaning
i case-insensitive
s . match \n

Example

(?i)hello\sfoo

match: Hello Foo
match: heLLo fOO
hello\s(.+)

match: hello foo
group 1: foo

match: hello bar
group 1: bar