regex – 如何写更可维护的正则表达式?
发布时间:2020-12-14 06:44:27 所属栏目:百科 来源:网络整理
导读:我开始觉得使用正则表达式会降低代码的可维护性。正则表达式的简洁和力量是有害的。 Perl化合物这种副作用像默认操作符。 我有一种习惯,记录正则表达式,至少有一个句子给出基本意图和至少一个例子。 因为正则表达式被构建,我觉得绝对必要评论表达式中每个
我开始觉得使用正则表达式会降低代码的可维护性。正则表达式的简洁和力量是有害的。 Perl化合物这种副作用像默认操作符。
我有一种习惯,记录正则表达式,至少有一个句子给出基本意图和至少一个例子。 因为正则表达式被构建,我觉得绝对必要评论表达式中每个元素的最大成分。尽管这样,即使我自己的正则表达式让我抓我的头,好像我正在读克林贡。 你有意地贬低你的正则表达式吗?你能把更短,更强的分解成更简单的步骤吗?我放弃了嵌套正则表达式。是否有正则表达式构造,你避免由于可维护性问题? 不要让这个例子云问题。 如果下面的Michael Ash有某种错误,你会有任何前景做任何事情,但抛弃它完全? ^(?:(?:(?:0?[13578]|1[02])(/|-|.)31)1|(?:(?:0?[13-9]|1[0-2])(/|-|.)(?:29|30)2))(?:(?:1[6-9]|[2-9]d)?d{2})$|^(?:0?2(/|-|.)293(?:(?:(?:1[6-9]|[2-9]d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(/|-|.)(?:0?[1-9]|1d|2[0-8])4(?:(?:1[6-9]|[2-9]d)?d{2})$ 每个请求的确切目的可以使用Ash先生的链接上面找到。 匹配01.1.02 | 11-30-2001 | 2/29/2000 非比赛02/29/01 | 13/01/2002 | 11/00/02
我通常只是试图将所有我的正则表达式调用包装在自己的函数中,有一个有意义的名称和一些基本的注释。我喜欢把正则表达式看作是一种只写的语言,只有编写它的人才能读取(除非它很简单)。我完全期望有人需要可能完全重写表达式,如果他们必须改变其意图,这可能是更好地保持正则表达式训练活着。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |