gpt4 book ai didi

c# - 正则表达式以确保在诸如 "05123:12315"的字符串中,第一个数字小于第二个数字?

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:23 24 4
gpt4 key购买 nike

我必须有 x:y 格式的字符串,其中 xy 必须是五位数字(零填充)和 x <= y

例子:

00515:02152

什么正则表达式会匹配这种格式?

如果可以,请简单说明一下解决方法,帮助我学习。

编辑: 为什么我需要正则表达式?我编写了一个通用工具,它接受输入并根据配置文件对其进行验证。弹出一个意外的要求,要求我以我显示的格式(使用配置文件)验证字符串。我希望使用我编写的现有配置框架来解决这个问题,因为拆分和解析不在该工具的范围内。对于这样一个突出的要求,我不介意有一些非正统/凌乱的正则表达式,只要它不是 10000 行长。感谢任何使用 Regex 的智能解决方案!谢谢。

最佳答案

描述

此表达式将验证第一个 5 位数字小于第二个 5 位数字,其中零填充的 5 位数字位于 : 分隔字符串中,格式为 01234:23456

^
(?:
(?=0....:[1-9]|1....:[2-9]|2....:[3-9]|3....:[4-9]|4....:[5-9]|5....:[6-9]|6....:[7-9]|7....:[8-9]|8....:[9])
|(?=(.)(?:0...:\1[1-9]|1...:\1[2-9]|2...:\1[3-9]|3...:\1[4-9]|4...:\1[5-9]|5...:\1[6-9]|6...:\1[7-9]|7...:\1[8-9]|8...:\1[9]))
|(?=(..)(?:0..:\2[1-9]|1..:\2[2-9]|2..:\2[3-9]|3..:\2[4-9]|4..:\2[5-9]|5..:\2[6-9]|6..:\2[7-9]|7..:\2[8-9]|8..:\2[9]))
|(?=(...)(?:0.:\3[1-9]|1.:\3[2-9]|2.:\3[3-9]|3.:\3[4-9]|4.:\3[5-9]|5.:\3[6-9]|6.:\3[7-9]|7.:\3[8-9]|8.:\3[9]))
|(?=(....)(?:0:\4[1-9]|1:\4[2-9]|2:\4[3-9]|3:\4[4-9]|4:\4[5-9]|5:\4[6-9]|6:\4[7-9]|7:\4[8-9]|8:\4[9]))
)
\d{5}:\d{5}$

现场演示:http://www.rubular.com/r/w1QLZhNoEa

请注意,这是使用 x 选项来忽略所有空格并允许注释,如果您在没有 x 的情况下使用它,那么表达式将需要全部放在一个行

enter image description here

关于c# - 正则表达式以确保在诸如 "05123:12315"的字符串中,第一个数字小于第二个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17747718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com