我有一个潜在的输入来自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