2014-03-28 121 views
2

任何人都可以幫助我理解爲什麼這不起作用?只是在bash中嘗試一些簡單的正則表達式。正則表達式bash腳本

#!/bin/bash 

re="-regex_" 

if [[ "$re" =~ ^[-[:alpha:]_]+$ ]]; then 
     echo "Regex" 

else 
     echo "this is not regex"   
fi 

乾杯

+1

它適用於我 –

+0

在我的它不做任何事,沒有任何錯誤或任何東西。 –

+1

什麼是BASH版本? – anubhava

回答

2

我假設你希望的「-regex_」的值爲true在if語句。

上的[:alpha:]標籤沒有什麼可說的搜索多個字母數字字符。

嘗試

[[ "$re" =~ ^-[[:alpha:]]+_$ ]] 
+0

我跟着你的例子,仍然沒有。我有權限設置,我在正確的文件夾。 –

+0

你使用過編輯過的嗎?我發佈的第一個有一個錯誤...愛正則表達式-_- – nick

+0

我只是試了一下,仍然沒有,很奇怪。有任何想法嗎? –

2

如果您在運行它的錯誤,請確保您使用的Unix行結尾(通過DOS2UNIX的運行),並確保它被標記爲可執行文件。否則,該腳本會爲我打印「Regex」。