【发布时间】:2012-09-11 13:25:41
【问题描述】:
我收到一堆格式如下的字符串:
ASDF [ 6]
ZXC[1]
OtPasd[ 4 ]
asdffa[ 7]
我需要检索有效字符串括号之间的整数。只要满足以下条件,字符串就有效:
- 括号之间只有空格。 IE:“ZXCV[a2]”无效
- 所有括号都正确闭合。即:“qwr[2”无效
- 所有字符串都只有一个开/关括号。 IE:“zxcf[4]]]”无效
我最好避免使用正则表达式,因为我得到了大量的字符串,所以计算量不大的东西会更好。
验证和检索整数的最简洁且最快的方法是什么?
编辑:我决定使用正则表达式。
【问题讨论】:
-
您应该向我们展示您的尝试。我可以理解这很难学习,但你至少应该尝试一些东西并展示出来。
-
你为什么放弃正则表达式的想法?到目前为止,我认为这是获取您的数字的最简单方法,并且可能与任何其他解决方案一样快。过早的优化是万恶之源!
-
使用
String.IndexOf、String.Trim和Int.TryParse的组合似乎很有可能。但是,我认为您应该重新考虑使用正则表达式,它们可能不像您最初认为的那样昂贵。 -
@trailmax 阿门!此外,正则表达式可能会比手动拆分、修剪等更强大。
-
使用正则表达式,如果发现它是一个瓶颈,则提高性能。编写干净的工作可维护代码,然后编写快速代码。别忘了,在 C# 中,Regex 可以编译