是否有用于解析数字(包括范围)的 Perl 模块?

2023-12-11

有没有一个模块可以为我做这个?

样本输入:2、5-7、9、3、11-14

#!/usr/bin/env perl
use warnings; use strict; use 5.012;

sub aw_parse {
    my( $in, $max ) = @_;
    chomp $in;
    my @array = split ( /\s*,\s*/, $in );
    my %zahlen;
    for ( @array ) {
    if ( /^\s*(\d+)\s*$/ ) {
        $zahlen{$1}++;
    }
    elsif ( /^\s*(\d+)\s*-\s*(\d+)\s*$/ ) { 
        die "'$1-$2' not a valid input $!" if $1 >= $2;
        for ( $1 .. $2 ) {
        $zahlen{$_}++;
        }
    } else {
        die "'$_' not a valid input $!";
    }
    }
    @array = sort { $a <=> $b } keys ( %zahlen );
    if ( defined $max ) {
    for ( @array ) {
        die "Input '0' not allowed $!" if $_ == 0;
        die "Input ($_) greater than $max not allowed $!" if $_ > $max;
    }
    }
    return \@array;
}

my $max = 20;
print "Input (max $max): ";
my $in = <>;
my $out = aw_parse( $in, $max );
say "@$out";

CPAN 搜索number range给了我这个,它看起来很像你正在寻找的东西:

数量::范围

以下是如何在您的应用程序中使用该模块的示例aw_parse功能:

$in =~ s/\s+//g; # remove spaces
$in =~ s/(?<=\d)-/../g; # replace - with ..

my $range = new Number::Range($in); # create the range
my @array = sort { $a <=> $b } $range->range; # get an array of numbers

应用于问题中的示例:

Input (max 20): 2, 5-7, 9, 3, 11-14
2 3 5 6 7 9 11 12 13 14
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有用于解析数字(包括范围)的 Perl 模块? 的相关文章

  • 如何将 RFC 2822 日期/时间解析为 Python 日期时间?

    我有 RFC 2822 指定的表格日期 比如说Fri 15 May 2009 17 58 28 0000 作为字符串 有没有一种快速和 或标准的方法来将其作为datetimePython 2 5 中的对象 我尝试生成 strptime 格式
  • 如何使用 PHP 解释 HTML5 输入日期值

    我需要让用户选择一个日期 最好采用 dd mm yy 格式 我决定尝试新的 HTML5 输入日期类型 但是我不知道如何解释它在服务器端给出的值 我得到的值是 yyyy mm dd 我怎样才能做到这一点 如果用户使用不支持它的旧版浏览器怎么办
  • 如何在 Perl 中使用变量作为模块名称?

    我知道可以在 Perl 中使用变量作为包变量的变量名 我想使用变量的内容作为模块名称 例如 package Foo our names blah1 blah2 1 在另一个文件中 我希望能够将标量的内容设置为 foo 然后访问中的名称数组F
  • 使用 Pandas 解析时避免 Excel 的科学记数法舍入

    我有一个自动生成的 Excel 文件 其中偶尔包含非常大的数字 例如135061808695 在 Excel 文件中 当您单击单元格时 它会显示完整的数字135061808695然而 在视觉上 使用自动 常规 格式 数字显示为1 35063
  • 使用 Gradle 在多个 Android 应用程序之间共享 Android 库

    我有 Android 应用程序 A 和 B 我想将每个应用程序中的重复代码提取到共享库 L 中 如何使用 Gradle 执行此操作 我之前见过这个问题的一些排列 但答案很少 最接近 最好的已问问题是这个 多个 Android 应用程序依赖于
  • 在 perl 中 \*STDIN 与 STDIN 相同吗?

    我是作者Python化者 https github com snoopyjc pythonizer我正在尝试将 CGI pm 的代码从标准 perl 库翻译为 Python 我在中遇到了这段代码从客户端读取 https metacpan o
  • 生成总和恒定的随机数

    我在想是否有办法生成一组随机数 其总和始终是一个常数 例如 20 可以分为 5 个数字 1 2 3 4 10 我不在乎这 5 个数字分别是什么 只要它们的总和等于 20 有没有办法以编程方式执行此操作 为了获得均匀分布 技巧是将总和视为一条
  • 解析未完全加载 VBA 的网站

    尝试进行简单的网络解析 我的问题是页面在向下滚动之前无法完全加载 谷歌搜索已经提出可能使用硒 但由于我不知道如何使用它 我想我会在这里问 我使用的代码 Sub gfquote Dim oHttp As MSXML2 XMLHTTP Dim
  • 与 6 位随机字母数字代码发生冲突的概率是多少?

    我使用以下 Perl 代码生成随机字母数字字符串 仅限大写字母和数字 用作 MySQL 数据库中记录的唯一标识符 数据库的行数可能会保持在 1 000 000 行以下 但实际的绝对最大值约为 3 000 000 行 我是否有 2 条记录具有
  • Nodejs 在 Windows 上找不到已安装的模块

    我现在正在Windows上学习nodejs 使用npm cmd全局安装了几个模块 nodejs找不到已安装的模块 以玉石为例 npm install jade g Jade安装在目录中 C Program Files x86 nodejs
  • 如何匹配与 Perl 中的特定模式不匹配的字符串?

    我知道使用正则表达式很容易匹配除给定字符之外的任何内容 text ab ac ad text s c g Match anything except c text is now c 我不知道如何 排除 字符串而不是字符 我如何 匹配除 ac
  • Java 8:如何创建毫秒、微秒或纳秒的 DateTimeFormatter?

    我需要创建格式化程序来解析具有可选的毫秒 微米或纳秒分数的时间戳 例如 对于我的需求 我看到以下机会 DateTimeFormatter formatter new DateTimeFormatterBuilder append DateT
  • 使用perl创建层次结构文件

    我的任务是使用 perl 创建父子层次结构文件 示例输入文件 制表符分隔 记录将以随机顺序排列在文件中 父项 可能出现在 子项 之后 S5 S3 S5 S8 ROOT S1 S1 S7 S2 S5 S3 S4 S1 S2 S4 77 S2
  • javax.xml.transform.TransformerException: java.io.FileNotFoundException: (访问被拒绝)

    我在最后一行代码中遇到异常 Transformer transformer TransformerFactory newInstance newTransformer DOMSource xmlSource new DOMSource do
  • 如何加速我的 Perl 程序?

    这确实是两个问题 但它们非常相似 为了简单起见 我想我应该把它们放在一起 Firstly 给定一个已建立的 Perl 项目 除了简单的代码优化之外 还有哪些不错的方法可以加速它 Secondly 用Perl从头开始编写程序时 有哪些好的方法
  • Java 相当于 Perl 的 s/// 运算符?

    我有一些代码正在从 Perl 转换为 Java 它大量使用了正则表达式 包括s 操作员 我已经使用 Perl 很长时间了 但仍然习惯 Java 的做事方式 特别是 字符串似乎更难使用 有谁知道或有一个完全实现的Java函数s 这样它就可以处
  • 列出 J 中数字的数字

    我使用的编程语言 J 我想将一个数字的所有数字放入一个列表中 From 12345 to 1 2 3 4 5 我能做些什么 我写这个的方式是 10 1 我们可以看到它与这句话的使用 10 1 123456789 1 2 3 4 5 6 7
  • Perl 正则表达式匹配模式的多个实例并替换

    我有一个看起来像这样的字符串 abc 1 2 3 something here foo 10 6 34 somethingelse here def 1 2 another 我想将此字符串拆分为一个数组 其中包含 abc 1 2 3 som
  • 计算机AI算法写句子?

    我正在寻找有关处理文本句子或在创建在正常人类语言 例如英语 中有效的句子时遵循结构的算法的信息 我想知道这个领域是否有我可以学习或开始使用的项目 例如 如果我给一个程序一个名词 为其提供同义词库 相关单词 和词性 以便它理解每个单词在句子中
  • Perl 三元条件运算符内部赋值问题

    我的程序中的这段 Perl 代码给出了错误的结果 condition a 2 a 3 print a 无论价值如何 condition就是 输出总是3 为什么呢 Perl 中对此进行了解释文档 http perldoc perl org p

随机推荐

  • 使用 Google 地图时,应用程序因 FragmentManager Replace 而崩溃

    我使用以下代码来加载片段 具体取决于在 NavigationDrawer 上选择的项目 但是 MapFragment 内部包含 Google 地图片段 并且在第二次尝试打开它后崩溃 这是我正在使用的代码 Override public vo
  • 使用 Typescript 1.7.5 找不到全局类型“IterableIterator”

    我安装了 NPM 版本的 Typescript 1 7 5 和 angular2 beta 在 Visual Studio 2015 Update 1 中构建项目时 出现以下错误 1 gt VSTSC error TS2318 Build
  • 如何处理Python中子进程返回码得到的负数?

    这段Python脚本 cmd installer exe install this works fine the just represent many arguments process subprocess Popen cmd proc
  • PHP Implode 包裹在标签中

    一直试图用谷歌搜索答案 但似乎找不到任何东西 我有以下内容 我想把每一个都包裹起来 value在跨度标签中 但我不确定如何 I tried 如果运气不好 有人可以告诉我我哪里出了
  • 在社交网络中查找“发布者”的 O(n) 算法

    有人问我如何在社交网络中找到 发布者 的问题 假设 简化的 社交网络仅在两个用户之间具有 关注 关系 并且一个用户不能关注自己 然后 我们将 发布者 定义为被所有其他用户关注但不关注任何人的用户 更具体地说 给定这样一个邻接矩阵格式的社交网
  • 如何添加 NSSpeechSynthesizer 类参考?

    我如何添加 NSSpeechSynthesizer 类参考 我认为它是在 系统 库 框架 AppKit framework 但是 当我单击 添加现有框架 时 框架窗口中没有这样的框架名称 任何人都可以帮我做到这一点吗 VSSpeechSyn
  • 在已经跟踪大量文件的现有存储库上应用 .gitignore

    我的存储库中有一个现有的 Visual Studio 项目 我最近在我的项目下添加了一个 gitignore 文件 我假设它告诉 Git 忽略该文件中列出的文件 我的问题是 所有这些文件都已经被跟踪 据我所知 在将规则添加到该文件以忽略它之
  • Java中可以使用Semaphore实现阻塞队列吗?

    我想知道是否可以使用Semaphore来实现阻塞队列 在下面的代码中 我使用一个信号量来保护关键部分 并使用另外两个信号量对象来跟踪空槽和已填充对象的数量 public class BlockingQueue private List qu
  • 使用 Spring Data 将结果集与实体和计数进行映射的首选方法

    通常存在显示所有类别以及这些类别的使用频率的业务问题 这个问题很容易通过查询来回答 SELECT c count FROM category assignment ca LEFT JOIN category c on ca c id c i
  • 如何在另一个组件中访问一个组件的变量 [Angular]

    我是角度新手 我今天正在尝试一件简单的事情 我已经浏览了很多答案 但无法正确实施它们 我想访问一些变量filter panel in filter bar 我的两个自定义组件 但两人都不是亲子关系 尽管它们位于同一目录中 但它们是独立的 在
  • jq 在输出中打印字符

    我要打印 输出标题内的分隔符 curl s http cd0a4a ethosdistro com json yes jq c rigs 0d6b27 50dc35 version driver miner gpus miner insta
  • UINavigationController“后退按钮”自定义文本?

    的 后退按钮 UINavigationController默认情况下显示堆栈中最后一个视图的标题 有没有办法在后退按钮中添加自定义文本 From 这个链接 self navigationItem backBarButtonItem UIBa
  • 如何让查询在分页结果时转移到后续页面

    我已经浏览了网站上所有的分页问题和答案 在所有冗长的代码和面向对象的解决方案中 这段代码是最短和最简单的
  • UML 中的轮廓图是什么?

    UML 中的轮廓图是什么 更具体地说 这张图的作用是什么 我们可以用它做什么 我们可以用它解决问题 或者我们可以用它简化更多解决方案 A 剖面图允许您通过定义您自己的构造型和一些其他类似元素来定义 UML 的扩展 这个想法是针对特定领域定制
  • OS X 上 Matplotlib 图形中的表情符号

    我有一个 Matplpoltlib 的奇异任务 我需要在标签内显示表情符号 我使用的是 OS X 因此系统范围内对表情符号有很好的支持 然而 Matplotlib 却无法解决问题 目前 表情符号显示为空框 我使用的是Python 3 所以U
  • 按钮切换引导程序刷新后保持状态

    我有三个切换按钮 我想在刷新页面后保持切换状态 我读了很多东西 但不知道如何在我的情况下使用它们 这是按钮和 div
  • 将数组分解成小数组

    我正在向一系列人员发送电子邮件 我有数组中的收件人列表 但该列表最多可达 500 人 我的邮件服务器一次发送的收件人数量有限制 50 个收件人 因此 如果列表 gt 50 我需要将其分成不同的邮件 将一个数组分成 50 个数组的最佳方法是什
  • 在最新版本(3.0.x)Resteasy 中,我们应该使用什么 ClientResponse 和 GenericType?

    我正在开发Resteasy 我将应用程序的 Maven 依赖项从2 2 x to 3 0 x突然我发现大多数 API 都被弃用了 因此 此迁移对我的代码和测试用例产生了影响 因为它只是说在我的整个代码中已弃用 我正在以我的测试用例为例 早期
  • 使用 Adb 输入时记录按键事件

    我使用命令adb shell su getevent lt dev input event5 gt Test txt记录触摸事件 当我触摸屏幕时它会起作用 即它会写入所有操作 按下键 移动键和向上键以及坐标 但是 当我使用命令时adb sh
  • 是否有用于解析数字(包括范围)的 Perl 模块?

    有没有一个模块可以为我做这个 样本输入 2 5 7 9 3 11 14 usr bin env perl use warnings use strict use 5 012 sub aw parse my in max chomp in m