根据录入的最小值和最大值整数区间,动态生成正则表达式
例: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无用
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度