一直在尋找一些關於bash的正則表達式的更高級的正則表達式信息,並沒有找到關於它的很多信息。在bash中使用正則表達式的字符串中的多個匹配
這裏的概念,用一個簡單的字符串:
myString="DO-BATCH BATCH-DO"
if [[ $myString =~ ([[:alpha:]]*)-([[:alpha:]]*) ]]; then
echo ${BASH_REMATCH[1]} #first perens
echo ${BASH_REMATCH[2]} #second perens
echo ${BASH_REMATCH[0]} #full match
fi
outputs:
BATCH
DO
DO-BATCH
那麼細它的第一場比賽(批次DO),但我怎麼拉第二場比賽(DO-批)?我只是在這裏畫一個空白,找不到關於bash正則表達式的很多信息。
由於您的字符串中沒有出現「DO-BATCH」,因此您不清楚您在詢問什麼。但是,你的意思是你還希望'$ {BASH_REMATCH [3]}'等於「BATCH」等? – chepner 2012-07-19 17:26:54
糟糕你的正確...編輯OP。是的,這是正確的 - > $ {BASH_REMATCH [3]} ==「BATCH」和$ {BASH_REMATCH [4]} ==「DO」 – 2012-07-19 18:00:12