[[ =~ ]] | [[ "Hallo" =~ Ha..o ]] ; echo $?; | 0 (true) | Der Punkt steht für ein einzelnes Zeichen. Der Ausdruck auf der rechten Seite darf nur unter strengen Bedingungen in Anführungsstrichen stehen. Leerzeichen erfüllen diese Bedingungen. |
[[ =~ ]] | [[ "Hallo" =~ Hall ]] ; echo $?; | 0 (true) | Auch hier passt der Ausdruck, da "Hall" in "Hallo" enthalten ist. |
[[ =~ $ ]] | [[ "Hallo" =~ Hall$ ]] ; echo $?; | 1 (false) | Textende wird mit "$" angegeben: "Hallo" endet nicht mit "Hall". |
[[ =~ ^ ]] | [[ "Hallo" =~ ^Hall ]] ; echo $?; | 0 (true) | Textanfang wird mit "^" angegeben: "Hallo" beginnt mit "Hall". |
[[ =~ [ .. ] ]] | [[ "Hallo" =~ H[a-z]ll ]] ; echo $?; | 0 (true) | Zeichenbereiche können angegeben werden. |
[[ =~ [^ .. ] ]] | [[ "Hallo" =~ H[^A-Z]ll ]] ; echo $?; | 0 (true) | nicht erlaubte Zeichenbereiche können angegeben werden. |
[[ =~ {} ]] | [[ "Hallo" =~ Hal{2}o ]] ; echo $?; | 0 (true) | Zeichenwiederholungen können angegeben werden. |
[[ =~ {,} ]] | [[ "Hallo" =~ Hal{2,3}o ]] ; echo $?; | 0 (true) | Mindestens 2, höchstens 3 Vorkommen |
[[ =~ () ]] | [[ "2016-12-24 23:00" =~ ([0-9]{4})-([0-9]{2})-([0-9]{2})\ ([0-9]{2}):([0-9]{2}) ]]; for i in {1..5}; do echo ${BASH_REMATCH[i]}; done | 2016 12 24 23 00 | Werden Teile des regulären Ausdrucks in runde Klammern eingeschlossen, können die passenden Textstücke über das Feld BASH_REMATCH[] weiterverabeitet werden. Das Element [0] enthält den gesamten Teil des Textes, der durch den Ausdruck abgedeckt wurde. |
[[ "Timestamp 2016-12-24 23:00:00" =~ ([0-9]{4})-([0-9]{2})-([0-9]{2})\ ([0-9]{2}):([0-9]{2}) ]] ; for i in {0..9}; do echo $i:${BASH_REMATCH[i]}; done; echo Anzahl=${#BASH_REMATCH[@]} | 0:2016-12-24 23:00 1:2016 2:12 3:24 4:23 5:00 6: 7: 8: 9: Anzahl=6 | Das Element [0] enthält enthält hier weder den Anfang "Timestamp ", noch die abschließenden Sekunden ":00". Die Anzahl der Feldelemente/Teilausdrücke steht in ${#BASH_REMATCH[@]}. Achtung [0] zählt mit. |
[[ "Hallo" =~ Ha*llo ]] ; echo $?; | 0 (true) | Null oder beliebig viele Wiederholungen |
[[ "Hallo" =~ Ha+llo ]] ; echo $?; | 0 (true) | Mindestens ein Vorkommen |