暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Perl模式匹配大型连载4--正则表达式最佳实践基础篇

EasyPerl 2020-01-29
130

正则表达式是Perl的特点之一, 也是Perl最出名的一点, 但是正则表达式简洁到可怕的语法,又是Perl难以维护的很大一个原因。

因此,我们需要尽量减少这种麻烦。

下面我们介绍一些基础的最佳实践:


一定要用/x标记

    /x模式可以让你随时对正则表达式添加注释, 并进行合理的排版, 让正则表达式具有更好的可读性


一定要用/m标记

    永远显示的申明匹配模式, 这样其他人在读代码时, 可以减少误解


总是使用/s标记

    默认的.是不会对换行进行匹配的, 因此往往在多行文本时, 会出现意想不到的结果。因此我们建议永远开打/s开关。


对于复杂的正则表达式,优先考虑使用m{}, 而不是m//

    在多行复杂的正则表达式中, 特别其他包含很多注释以及转义字符时, 往往使用{}, 可以使我们的结构更加明确。同时{}是可以做嵌套的, //在嵌套时会出现问题。使用大括号可以增加正则表达式在视觉上的独特性, 改善代码的可读性。


只使用m{} m//这2种界定符

    Perl允许你使用一切你想得到的字符来作为正则表达式的界定符, 但请不要放飞自我, 你会让维护他的人崩溃的。我们只建议使用{}和//这2种界定符


匹配任意空白, 而不是指定的空白字符

    数据内的空白可能是单一个某个空白字符, 也可能是多个空白字符的组合, 因此在匹配空白时, 除非有特定的需求, 你应该使用\s来匹配空白, 对于必要的空白使用\s+, 对于可选的空白使用\s*。


只在需要捕获时使用小括号

    perl提供了一种不捕获的小括号形式(?:), 在你不需要捕获时, 请使用这种方式, 这样处理器不需要花时间来进行没有必要的捕获, 同时也可以避免程序的维护性以及可读性的问题。

文章转载自EasyPerl,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论