aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/zsh.md
diff options
context:
space:
mode:
authorjohannst <johannes.stoelp@gmail.com>2021-01-20 20:11:01 +0100
committerjohannst <johannes.stoelp@gmail.com>2021-01-20 20:11:01 +0100
commit836b1874369fa47f37a71f2f04af18e7929567ce (patch)
tree81917cb6dba6da075d4e35f5cfe7db27c4ed7415 /src/tools/zsh.md
parent4de58de1947bf4fcfe16db8e9d2c9c920b1441d1 (diff)
downloadnotes-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.md18
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