方法一、用lookbehind
1、先匹配0-999999999之间的数字
0|^[1-9]\d{0,8}$
2、在用环视
[1-4]\d(?<!4[3-9])\d{8}(?<!429[5-9]\d{6})(?<!42949[7-9]\d{4})(?<!429496[8-9]\d{3})(?<!4294967[3-9]\d{2})(?<!429496729[6-9])
3、合在一起如下
^[1-9]\d{0,8}$|[1-4]\d(?<!4[3-9])\d{8}(?<!429[5-9]\d{6})(?<!42949[7-9]\d{4})(?<!429496[8-9]\d{3})(?<!4294967[3-9]\d{2})(?<!429496729[6-9])
qt486 不支持lookbehind,暂时只能用方法二
方法二、
1、先匹配0-999999999之间的数字
0|^[1-9]\d{0,8}$
2、然后匹配1000000000-3999999999
^[1-3]\d{9}$
3、在匹配40000000000-4294967295
^4[0-1]\d{8}$|^42[0-8]\d{7}$|^429[0-3]\d{6}$|^4294[0-8]\d{5}$|^42949[0-5]\d{4}$|^429496[0-6]\d{3}$|^4294967[0-1]\d{2}$|^42949672[0-8]\d{1}$|^429496729[0-5]$
4、合在一起如下
0|^[1-9]\d{0,8}$|^[1-3]\d{9}$|^4[0-1]\d{8}$|^42[0-8]\d{7}$|^429[0-3]\d{6}$|^4294[0-8]\d{5}$|^42949[0-5]\d{4}$|^429496[0-6]\d{3}$|^4294967[0-1]\d{2}$|^42949672[0-8]\d{1}$|^429496729[0-5]$
在代码中"\d",需要转义,加一个"\",使用"\\d"