加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Perl中,将字符串转换为字符列表的理智方法是什么?

发布时间:2020-12-15 21:56:52 所属栏目:大数据 来源:网络整理
导读:我一直想知道是否有一种更好,更简洁的方法将字符串拆分为字符 @characters = split //,$string 并不难读,但不知何故,使用正则表达式对我来说太过分了. 我想出了这个: @characters = map { substr $string,$_,1 } 0 .. length($string) - 1 但我发现它更丑陋
我一直想知道是否有一种更好,更简洁的方法将字符串拆分为字符
@characters = split //,$string

并不难读,但不知何故,使用正则表达式对我来说太过分了.

我想出了这个:

@characters = map { substr $string,$_,1 } 0 .. length($string) - 1

但我发现它更丑陋且不太可读.将字符串拆分为字符的首选方法是什么?

解决方法

为什么使用正则表达式会“过度杀伤”?许多人担心Perl中的正则表达式过度,因为他们认为运行它们涉及高度复杂和缓慢的正则表达式算法.这并非总是如此:实现是高度优化的,并且特别处理了许多简单的情况:看起来像正则表达式实际上可以执行的操作与简单的子字符串搜索一样.如果这种类型的拆分也得到优化,我也不会感到惊讶.在我运行的某些测试中,split比你的地图更快. unpack似乎比split更快.

我建议拆分,因为它是“惯用”的方式.你可以在perldoc,很多书中找到它,任何优秀的Perl程序员都应该知道它(如果你不确定你的读者会理解它,你总是可以像有人建议的那样在代码中添加注释.)

OTOH,如果正则表达式“过度杀伤”只是因为语法难看,那么对我来说这太过主观了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读