diff options
author | johannst <johannes.stoelp@gmail.com> | 2021-01-20 20:11:01 +0100 |
---|---|---|
committer | johannst <johannes.stoelp@gmail.com> | 2021-01-20 20:11:01 +0100 |
commit | 836b1874369fa47f37a71f2f04af18e7929567ce (patch) | |
tree | 81917cb6dba6da075d4e35f5cfe7db27c4ed7415 /src/tools/zsh.md | |
parent | 4de58de1947bf4fcfe16db8e9d2c9c920b1441d1 (diff) | |
download | notes-836b1874369fa47f37a71f2f04af18e7929567ce.tar.gz notes-836b1874369fa47f37a71f2f04af18e7929567ce.zip |
bash/zsh: add notes for regex matching
Diffstat (limited to 'src/tools/zsh.md')
-rw-r--r-- | src/tools/zsh.md | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/tools/zsh.md b/src/tools/zsh.md index 4d52ae0..e9aa8bf 100644 --- a/src/tools/zsh.md +++ b/src/tools/zsh.md @@ -162,6 +162,24 @@ echo ${(L)foo} # aabb echo ${(U)foo} # AABB ``` +## Regular Expressions + +Zsh supports regular expression matching with the binary operator `=~`. +The match results can be accessed via the `$MATCH` variable and +`$match` indexed array: +- `$MATCH` contains the full match +- `$match[1]` contains match of the first capture group + +```zsh +INPUT='title foo : 1234' +REGEX='^title (.+) : ([0-9]+)$' +if [[ $INPUT =~ $REGEX ]]; then + echo "$MATCH" # title foo : 1234 + echo "$match[1]" # foo + echo "$match[2]" # 1234 +fi +``` + ## Completion ### Installation |