如何格式化正则表达式?需匹配x,xx格式的数值范围
解决方案
根据你的需求,我分两种场景给出对应的正则表达式:
场景1:仅匹配格式(任意符合「整数部分,两位小数-整数部分,两位小数」的范围)
如果只需要确保格式符合要求,不限制前后数值的整数部分是否相同、小数部分的范围,那么可以用这个正则:
^\d+,\d{2}-\d+,\d{2}$
正则拆解:
^:匹配字符串的开头,确保没有前置多余字符\d+:匹配1位及以上的整数(满足「整数部分任意位数」的要求),\d{2}:匹配逗号加上恰好两位数字(固定两位小数)-:匹配连接两个数值的连字符$:匹配字符串的结尾,确保没有后置多余字符
场景2:匹配你给出的示例格式(整数部分相同,小数部分从00到99)
如果需要严格匹配像10,00-10,99、100,00-100,99这类整数部分完全一致,小数部分固定为00和99的范围,那么可以用带捕获组的正则:
^(\d+),00-\1,99$
正则拆解:
^(\d+):捕获开头的整数部分(\d+匹配任意位数整数),并将其保存为捕获组1,00:匹配逗号加00,对应范围的起始小数部分-:匹配连字符\1:引用之前捕获的整数部分,确保前后整数部分完全相同,99:匹配逗号加99,对应范围的结束小数部分$:匹配字符串结尾,避免多余字符
验证示例:
- 匹配成功:
10,00-10,99、100,00-100,99、1000,00-1000,99 - 匹配失败:
10,0-10,99(小数部分不足两位)、10,00-11,99(整数部分不同)、100.00-100.99(用点代替逗号)
内容的提问来源于stack exchange,提问作者None
相关产品推荐
相关产品推荐

