正则表达式判断sda1和sda

在linux是用需要用正则表达式匹配u盘的磁盘名称

在linux中不同的u盘,会在/dev/下生成不同的文件。
有的只会生成/dev/sda,有的U盘会生成/dev/sda /dev/sda1

现在我需要有正则表达式来判断这个,如果只有/dev/sda那么匹配结果就是/dev/sda。
如果既有/dev/sda又有/dev/sda1,那么匹配结果只需要/dev/sda1

我目前的匹配结果sd[a-z][0-9]|sd[a-z]$
当目录里既有/dev/sda又有/dev/sda1时,它两个都会匹配。请问怎么写才能:

如果匹配到sda1那么就直接返回,不再匹配sda

sda-z

sd[a-z]([0-9]{0,1})

正则表达式默认使用贪婪模式,优先匹配有1的

用条件语句先匹配有sda1的,因为后面又数字,表达式后面加个[0-9]。匹配不到再匹配又ada的