给定一个像“4> 2”这样的字符串,一般来说“X> Y”有一种方法可以创建一个正则表达式,如果条件为真,则接受字符串吗?
答案 0 :(得分:3)
你做不到。作为一个反例,你必须能够接受
10 > 1
一般
10^n > 10^m
表示n>米这将需要计数,正常的正则表达式无法做到。也就是说,如果你有更强大的正则表达式,就像某些语言一样,你可能会这样做。
答案 1 :(得分:0)
你可以,但它需要一些正则表达式(比如对于unsigned short 0 .. 65535),数字不是以0
开头的
检查尺寸,如果
/^(\d{2}>\d{1})|(\d{3}>\d{2})|(\d{4}>\d{3})|(\d{5}>\d{4})$/
然后确定,否则检查相同的长度,如果
/^(\d{1}>\d{1})|(\d{2}>\d{2})|(\d{3}>\d{3})|(\d{4}>\d{4})|(\d{5}>\d{5})$/
then (same length) check digit by digit, if
/^(9.*?>[1-8])|(8.*?>[1-7])|(7.*?>[1-6])|(6.*?>[1-5])|(5.*?>[1-4])|(4.*?>[1-3])|
(3.*?>[1-2])|(2.*?>1)/
else (2nd digit) if
/^(.9.*?>.[1-8])|(.8.*?>.[1-7])|(.7.*?>.[1-6])|(.6.*?>.[1-5])|(.5.*?>.[1-4])|(.4.*?>.[1-3])|
(.3.*?>.[1-2])|(.2.*?>.1)/
etc.. for 3rd to 5th digit