2013-11-03 40 views
2

我在教自己bash腳本,我現在正在學習的第一個元素是正則表達式。我通過購買的視頻學習正則表達式,並且教師讓我用來測試的正則表達式測試器是RegexPal,它是專門用於java腳本正則表達式的測試器。有人能告訴我bash使用的正則表達式的類型或庫嗎?我想確保我正在學習能夠在bash腳本中使用的正確內容。我知道RegexBuddy是一個選項,但是如果我最終在bash中使用它們,我將使用哪種類型的正則表達式。非常感謝您的幫助。什麼正則表達式庫使用

+2

Bash正則表達式引擎有一點限制。我強烈建議用Perl學習正則表達式,你學習的任何技能都可以很容易地應用到bash正則表達式中。 –

+0

謝謝塞繆爾。我會按你的建議去做。 –

+1

正則表達式在bash中不常用!球更頻繁地使用。否則,它使用POSIX正則表達式函數,其中'man'位於'man 3 regex'(在我的系統上)。 –

回答

1

使用的Bash正則表達式相當標準。例如:

[[ $var =~ ^[0-9]+$ ]] && echo "it's a number" 

值的範圍([0-9]例如),則^符號來指示開始,$符號以指示結束時,出現的*的數目(+用於一個或多個,用於0或更多,{n, m} n和m次出現次數,{n}嚴格n次出現次數...)。它們都以允許我們使用正則表達式的所有語言找到。因此,我認爲任何製造的正則表達式工具都可以用於此(有一些調整,例如在PHP中有分隔符,在某些語言中有數字等的快捷方式,如\d ...)。

然而,Bash是相當有限的,但可以通過其他工具,如egrepgrep -E),sedawk陪同...

總之,使用正則表達式製造工具之前,我認爲你必須知道語法的正則表達式能夠知道工具的建議是否正確。

+0

正是我想知道的。謝謝伊德里斯。 –

+0

不客氣:) –

+0

@ JudeT.Bonham不要忘記標記爲已解決;) –

相關問題