求一正则

求一正则

开头以 !号或1位数字开头,只能它俩中的一个。如果以!号开头的话,后面就还能加一位数字。
然后,后面必须跟一个 +号 或 逗号(,)
^_^,请高手去招
是这样的么

[Copy to clipboard] [ - ]
引用:
原帖由 jusa 于 2007-12-6 17:31 发表
开头以 !号或1位数字开头,只能它俩中的一个。如果以!号开头的话,后面就还能加一位数字。
然后,后面必须跟一个 +号 或 逗号(,)
^_^,请高手去招
嗯,二楼正解
/^(!\d\+,|\d).+/
p=/^(!\d\+,|\d).+$/
test=Regexp.compile(p); 
puts test.match("!3+,idol") #符合 
puts test.match("8idol")  #符合
puts test.match("!3+x")  #不符合
puts test.match("i!3+,")  #不符合
p=/^[!1]?\d[\+\,]/   #二楼有误
test=Regexp.compile(p);
puts test.match("!3+,idol") 
puts test.match("8idol") 
puts test.match("!3+x") 
puts test.match("i!3+,")