当不使用正则表达式在C#(或Java,C等)

很明显,有很多问题看起来像一个简单的正则表达式表达式将会解决,但是证明是很难用正则表达式来解决的。

那么那个不是正则表达式专家的人怎么知道他/她是否应该学习正则表达式来解决给定的问题?

(见“Regex to parse C# source code to find all strings”,我问这个问题。)

这似乎总结得很好:

07001
07002

(我刚刚更改了问题的标题,使其更具体,因为C#中的Regex的一些问题在Perl和JScript中得到解决,例如两个引用级别使得正则表达式如此不可读。

不要尝试使用正则表达式来解析分层文本,例如程序源(或嵌套XML):它们被证明对于那个不够强大,例如,对于一串括号,它们不能确定它们是否“平衡与否。

使用解析器生成器(或类似技术)。

另外,我不建议使用正则表达式来验证具有严格正式标准(如电子邮件地址)的数据。
它们比你想要的要困难得多,你会有不正确或非常长的正则表达式。

http://stackoverflow.com/questions/968919/when-not-to-use-regex-in-c-sharp-or-java-c-etc

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:当不使用正则表达式在C#(或Java,C等)