工作中,同一指令碼在bash 3.1下執行成功,但在4.1環境下失敗。
f. quoting the string argument to the [[ command's =~ operator now forces
string matching, as with the other pattern-matching operators.
引用會把正規表示式直接看作字串:
[vimos@vimos 015 bash]$ [[ "hello" =~ "^([[:upper:]][[:lower:]]*$)" ]] && echo match || echo no
no[vimos@vimos 015 bash]$ [[ "hello" =~ ^([[:upper:]][[:lower:]]*$) ]] && echo match || echo no
match
[vimos@vimos 015 bash]$ [[ "^([[:upper:]][[:lower:]]*$)" =~ "^([[:upper:]][[:lower:]]*$)" ]] && echo match || echo no
match
當前有兩種處理方式,可以解決這個問題:
[vimos@vimos 015 bash]$ reg="^([[:upper:]][[:lower:]]*$)";[[ "hello" =~ $reg ]] && echo match || echo no
match
bash正規表示式
1.1 正規表示式 正規表示式 regular expression 是一種字元模式 pattern 用來匹配字串中的子串。例如 ro t 可以匹配 root rooot等 ro t 可以匹配 rot root rooot等1.1 正規表示式元字元 元字元是具有特殊含義的字元,不同於字元表面的含義。...
bash正規表示式
星號 匹配它前面的字串或正規表示式任意次 包括0次 比如 1122 可能匹配的字串有 112 1122 1122222 1123131231 句號.匹配除換行符之外的任意乙個字元。比如 112.將匹配112 至少乙個字元 可能匹配的字串有 1121 1122 112abc 1123131231 但不...
正規表示式 學習筆記4 1
徒弟 前面幾節課跟師傅學習了 字元組,括號的作用 還有什麼呢?師傅 還有好多呀,例如錨點!問題引出 public class generalone else 執行結果 找到 cat 判斷句子中是否存在cat 的單詞。那麼我們查詢的是cat 這個子字串,還是 cat這個單詞 為了驗證這一點,我們在t ...