我有一個潛在的輸入來自bash腳本中的read -e -p
命令。例如,用戶將鍵入L50CA
。用戶可以鍵入的一些其他可能性是:K117CB
,K46CE2
或V9CE1
。Bash的正則表達式匹配
我要分手什麼在讀我讀這樣的:。
read -e -p "What first atom? " sel1
話,我想作一個這樣的數組(但這不會分開):
arr1=($sel1)
但我需要使得
${arr1[0]}
是等於L ${arr1[1]}
等於50 到陣列分離${arr1[2]}
等於CA
此分隔必須與上面列出的其他可能的用戶輸入格式一起使用。正則表達式似乎是這樣做的方式。我可以使用以下正則表達式隔離輸入的前兩個匹配:^\D
和\d*(?=\w)
我需要匹配第三個組件並將其實施到數組中的幫助。或者,將用戶輸入分解爲三個新變量也很好。或者我們可以在每個匹配之間放置一個空格,因此L50CA
轉換爲L 50 CA
,因爲那麼arr1=($sel1)
將起作用。
感謝您的幫助。
'K46CE2'分成了什麼? 'K','46','CE2'?或'K','46','CE','2'? – 2014-09-21 22:41:41
它會分成K 46 CE2。如果他們像jm66的回答一樣分開出來,那很好,因爲把第三和第四個條目結合起來就是微不足道的。 – PhysicalChemist 2014-09-21 22:43:42