我做了這個正則表達式,但它不工作。bash爲什麼我的正則表達式不工作?
我得到這個字符串: ( '/test/test/test/test-Test/TEST/test.sql'),
我的bash代碼:
if [[ ${arrayQuery[$i]} =~ ([a-z0-9]+)\/([a-z0-9]+)\/([a-z0-9]+)\/([a-z0-9-]+)\/([a-z0-9]+)\/([a-z0-9]+).([a-z0-9]+) ]]; then
queryName=$1
echo "test $queryName"
fi
它不是任何人都可以解釋我爲什麼這不起作用?
我在regex101.com上試了我的正則表達式,正則表達式在本網站上工作。
它看起來對我來說,你只是在尋找小寫字母和數字,但你必須在本例中字符串大寫字母,所以它不應該匹配。 –
您不需要在正則表達式中轉義'/'。 ''bash'不會像'sed'那樣用它作爲分隔符,例如',所以它們沒有特殊的含義。 – chepner
我可以問你,爲什麼你使用這個正則表達式?你是否試圖將你的路徑分成它的dir組件? –