2015-10-04 33 views
-3

我試圖學習一種新的編程語言,它很大。數以千計的新術語要學習。我知道編程,但不知道用於這種語言的特定過程或常量的名稱。但是我有一個腳本文件,我可以通過搜索大量源文件來獲得巨大的幫助,只要我有一組正確的文字。Bash腳本匹配源代碼行中的段

但現在我想用&&到多段在同一行匹配,我想通過這整個表達式的腳本文件作爲一個參數,所以我可能會用一個讀命令傳遞這樣的:

moo && cow 

而且它會匹配這樣的:

Moonlight over Moscow 

但不是這樣的:

I heard a cow mooing. 

如果我想它無論哪種方式,我將它傳遞這樣的:

moo && cow || cow && moo 

這是棘手,而且可能外面什麼就可以正常使用了可用的語法做。但是,我不是專家,所以我不知道。

我很靈活地傳遞給腳本,比如單個的&s|s,括號的使用等等。我只需要了解所涉及的規則以及哪些實用程序可以爲我執行此操作。或者如果涉及到這個工具集。

+2

我不明白你的問題。這是關於解析命令行參數嗎?或關於解析(bash)源代碼?或者你是否試圖創建一種你正試圖解析的新語言? – lenz

+2

你寫過任何代碼嗎? – Andrew

+1

您爲此[regex]添加了標籤。你爲什麼不使用它們? – Mat

回答

0

如果你只是要檢查,以便這兩個元素,只需用.*匹配它們之間的任何東西:

my_str="moonlight over moscow" 
if [[ $my_str =~ moo.*cow ]]; then 
    echo "match" 
fi