根据录入的最小值和最大值整数区间,动态生成正则表达式
例:min=134,max=43201生成正则表达式
或者min=-10,max=677生成正则表达式
js根据指定整数区间,动态生成正则表达式
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 int getExpNext(int num,int max) { QString chars = QString::number(num); for (int i=chars.length()-1; i>=0 ; i--) { if (chars[i]=='0') { chars[i] = '9'; } else { chars[i] = '9'; break; } } int value = chars.toInt(); if(value < max) return chars.toInt(); chars = QString::number(num); QString charsMax = QString::number(max); if(charsMax.length() == chars.length()) { for (int i=0; i < chars.length(); i++) { if (chars[i] < charsMax[i]) { if(i == chars.length()-1) { return max; } else { chars[i] = '0' + charsMax.at(i).toLatin1() - '0'-1; for(int j = i+1; j < chars.length(); j++) { chars[j] = '9'; } } return chars.toInt(); } } } return max; } //指定范围和小数位数,生成一个正则表达式, //min 最小值,max最大值,decimalCount 小数位数,即只能输入min~max范围的数值,最多decimalCount位小数位,如果decimalCount=0,就是整数 QString getExpStr(int min,int max,int decimalCount) { if(min > max) return ""; if(min == max) return QString::number(min); QList<int> minList; QList<int> maxList; max--; int value = min; int temp = value; while (value < max) { temp = value; value = getExpNext(value,max); minList << temp; maxList << value; value++; } QString expStr; if(max % 10 == 0) expStr+= QString("(%1)").arg(max); for(int i =0; i < minList.count(); i++) { QString minStr = QString::number(minList[i]); QString maxStr = QString::number(maxList[i]); QString str = QString("("); for(int j = 0 ; j < minStr.length(); j++) { if(minStr[j] == maxStr[j]) { str +=minStr[j]; } else str += QString("[%1-%2]").arg(minStr[j]).arg(maxStr[j]); } str += ")"; if(!expStr.isEmpty()) expStr += "|"; expStr += str; } if(decimalCount > 0) expStr = QString("^(%1|(%4))|((%2)%3)$").arg(expStr).arg(expStr).arg(QString("\\.[0-9]{%1}").arg(decimalCount)).arg(max+1); else expStr = QString("^(%1|(%2))$").arg(expStr).arg(max+1); return expStr ; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
- ¥15 请问在阿里云服务器中怎么利用数据库制作网站
- ¥60 ESP32怎么烧录自启动程序
- ¥50 html2canvas超出滚动条不显示
- ¥15 java业务性能问题求解(sql,业务设计相关)
- ¥15 52810 尾椎c三个a 写蓝牙地址
- ¥15 elmos524.33 eeprom的读写问题
- ¥15 用ADS设计一款的射频功率放大器
- ¥15 怎么求交点连线的理论解?
- ¥20 软件开发方法学习来了