当前位置: 技术问答>linux和unix
正则表达式匹配数字范围?
来源: 互联网 发布时间:2017-01-04
本文导语: linux的正则表达式匹配数字,是[0-9]。可是我现在需要匹配一个范围,比如1-5、1-18等等,这个是不确定的,最大的那个数是根据ls的结果文件个数确定的。 最小的数确定是1. 最大的数length=${#array[@]},是一个数组的长度...
linux的正则表达式匹配数字,是[0-9]。可是我现在需要匹配一个范围,比如1-5、1-18等等,这个是不确定的,最大的那个数是根据ls的结果文件个数确定的。
最小的数确定是1.
最大的数length=${#array[@]},是一个数组的长度。。。
大家来帮忙!
最小的数确定是1.
最大的数length=${#array[@]},是一个数组的长度。。。
大家来帮忙!
|
那你匹配数字就可以了啊。
"[0-9]{1,}" 表示是1个以上的0-9的字符。
例如 0,01,05,078,0023,3333 都可以匹配上。如果输入的是这个匹配上的数字,那么你将这个变量与文件个数进行大小比较就可以了。
|
既然这个最大数字是不确定的,也就是只能是个变量。 这个就比较复杂了。我建议你利用正则表达式提取该值,进行判断是否满足要求。
|
如果你实在想用正则表达式,你就这样吧:
比如要求 1-276,而且不能匹配高位补0的,比如027、01;不能匹配0;不能匹配大于276的。
那么正则可以是:
reg = "\b[1-2](? 第一种的100-276写作"\b[1-2](?
比如要求 1-276,而且不能匹配高位补0的,比如027、01;不能匹配0;不能匹配大于276的。
那么正则可以是:
reg = "\b[1-2](? 第一种的100-276写作"\b[1-2](?