大佬教程收集整理的这篇文章主要介绍了perl – 如何将“1..15,16”之类的字符串扩展为数字列表?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
application --fields 1-6,8
我需要在命令行上显示用户请求的字段.
我想用’…’代替’ – ‘,以便我可以将它们存储在数组中,例如
$str = "1..15,16" ; @arr2 = ( $str ) ; @arr = ( 1..15,16 ) ; print "@arr\n" ; print "@arr2\n" ;
这里的问题是@arr工作正常(应该如此),但在@ arr2中,整个字符串不会扩展为数组元素.
我尝试过使用转义序列,但没有运气.
可以这样做吗?
请尝试使用Number::Range:
use number::range; $str = "1..15,16" ; @arr2 = number::range->new( $str )->range; print for @arr2;
为避免死于无效范围,请执行以下操作:
eval { @arr2 = number::range->new( $str )->range; 1 } or your_error_handling
还有Set::IntSpan,它使用 – 而不是..:
use Set::IntSpan; $str = "1-15,16"; @arr2 = Set::IntSpan->new( $str )->elements;
但它要求范围有序且不重叠(它是为了在.newsrc文件上使用而编写的,如果有人记得那些是什么的话).它还允许无限范围(字符串开始 – 数字或结束数字 – ),元素方法将呱呱叫.
以上是大佬教程为你收集整理的perl – 如何将“1..15,16”之类的字符串扩展为数字列表?全部内容,希望文章能够帮你解决perl – 如何将“1..15,16”之类的字符串扩展为数字列表?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。