正则表达式是否可维护?

我使用正则表达式的任何代码都将使用它们作为黑盒子:

>放入字符串
魔术正则表达式
>取出字符串

这在生产代码中似乎不是一个特别好的主意,因为即使是一个小的变化,通常会导致完全不同的正则表达式。

除了标准是永久性和不变性的情况外,还有正确的方式做事情,还是尝试不同的方法?

如果正则表达式长而且不可穿透,使它们难以维护,那么它们应该被评论。

许多正则表达式实现允许您使用空格和注释来填充正则表达式。
http://www.regular-expressions.info/comments.html
和编码恐怖:Regular Expressions: Now You Have Two Problems

Any code I’ve seen that uses Regexes tends to use them as a black box:

如果用黑盒子表示抽象,那就是所有的编程,试图抽象出困难的部分(解析字符串),以便您可以专注于问题域(我想要匹配什么样的字符串)。

even a small change can often result in a completely different regex.

任何代码都是如此。只要您正在测试正则表达式,以确保它符合您期望的字符串,理想情况下使用单元测试,那么您应该有信心更改它们。

编辑:请同时阅读杰夫对这个答案关于生产代码的评论。

http://stackoverflow.com/questions/150764/are-regexes-really-maintainable

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:正则表达式是否可维护?