很明显,有很多问题看起来像一个简单的正则表达式将解决,但事实证明,使用正则表达式很难解决.
那么,不是正则表达式专家的人怎么知道他/她是否应该学习正则表达式来解决给定的问题?
(请参阅"正则表达式解析C#源代码以查找所有字符串",以便我提出这个问题.)
这似乎总结得很好:
(我刚刚更改了问题的标题以使其更具体,因为在C#中使用Regex的一些问题在Perl和JScript中得到了解决,例如,两个引用级别使Regex难以理解.)
ala*_*mar 14
不要试图使用正则表达式来解析分层文本,如程序源(或嵌套的XML):它们被证明不够强大,例如,它们不能,对于一连串的parens,弄清楚它们是否'是否平衡.
使用解析器生成器(或类似技术).
此外,我不建议使用正则表达式来验证具有严格正式标准的数据,例如电子邮件地址.他们比你想要的更难,你要么是不准确的,要么是非常长的正则表达式.