ASD~12(RT) FRT~13(WR) TTY~14型如以上的格式,也就是说括号即括号中部分可有可无,我写如下正则表达式,
判断一个字符串是否符合这种格式,如下:Regex r = new Regex(@"^([A-Za-z0-9]{0,9}\~\d{1,3}(?'bracket'\()(?(bracket)(\w{1,10}\)\s*)|(\s*)))+$")
请问有何错误?都加上括号则可以,去掉其中的一些括号部分则不行请高人指点!!!
判断一个字符串是否符合这种格式,如下:Regex r = new Regex(@"^([A-Za-z0-9]{0,9}\~\d{1,3}(?'bracket'\()(?(bracket)(\w{1,10}\)\s*)|(\s*)))+$")
请问有何错误?都加上括号则可以,去掉其中的一些括号部分则不行请高人指点!!!
这样试下...
smbeng的做法果然巧妙,将括号及括号中的部分当作一个整体来处理。可是像我上面那种笨方法,错又在哪里呢??
^([A-Za-z0-9]{0,9}\~\d{1,3}(?:(\(\w{1,10}\)\s*)|(\s*)))+$
相当于把
(?'bracket'\()这一组提到后括号的同一个分组内..TTY~14 它不存在(,它就不存在'bracket'了...