c#正则表达式unsigned short,int,long

时间:2011-09-22 15:58:34

标签: c# regex

我遇到处理正则表达式的问题。 我需要的是创建一个正则表达式,检查通过控制台写入的一堆数字,用空格分隔,并检查它们中有多少: 1)无符号短 2)unsigned int 3)无符号长 对于像我这样没有任何正常表达经验的人来说,这是不可能的。

3 个答案:

答案 0 :(得分:8)

迈克尔是对的; 技术上你遇到的问题是正则表达式可以解决的问题。 (显然;语言“合法无符号长文字的字符串”是有限语言,因此通常是常规语言。但它是一种有限的语言,有16亿亿成员,这是相当多的。)

实际上,您应该编写一个正则表达式,将输入字符串拆分为令牌,其中令牌是空格或数字字符串,然后编写非基于正则表达式的表达式分析器,确定该数字是否合法长,短等。

也许你可以展示你迄今为止在这个问题上所做的工作,并提出一个更具体的问题来解决你的问题。

答案 1 :(得分:4)

你在RegEx中问得太多了......它当然可以处理数字的分割,但你应该通过迭代正则表达式之外的每一个来实现逻辑来检查它们是什么类型的数字。

请参阅Jon Skeet关于此的优秀博客:http://msmvps.com/blogs/jon_skeet/archive/2005/09/21/67247.aspx

答案 2 :(得分:2)

为什么要使用正则表达式?您可以使用String.Split()UInt32.TryParse()UInt64.TryParse()(无符号长整数)和UInt16.TryParse()(无符号短整数)。