首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在perl中检查一个数字是否以其他数字开头

如何在perl中检查一个数字是否以其他数字开头
EN

Stack Overflow用户
提问于 2018-07-17 07:13:20
回答 2查看 178关注 0票数 1

我需要帮助创建一个函数,获取一个随机数(例如45789277),并检查上面的数字是否以始终相同的数字列表之一开始(例如1,2,45,757,3,7466)

如果给定的数字是55366363而列表是1,4,3函数将返回False,如果列表是6535,55,1,8函数将返回True *数字不可能从列表中的两个数字开始*给定数字的第一个数字永远不会是0*列表中将有不同长度的数字(一位/两位/三位/四位)*给定的数字的位数将始终多于列表中的数字

谢谢;)

EN

回答 2

Stack Overflow用户

发布于 2018-07-17 07:24:16

您可以将所有前缀连接到一个正则表达式中,并将随机数与其进行匹配:

代码语言:javascript
运行
AI代码解释
复制
#!/usr/bin/perl
use warnings;
use strict;

sub prefix_in_list {
    my ($needle, $haystack) = @_;
    my $regex = join '|', @$haystack;
    return $needle =~ /^(?:$regex)/
}

use Test::More tests => 3;

ok prefix_in_list(45789277, [1, 2, 45, 757, 3, 7466]);

ok ! prefix_in_list(55366363, [1, 4, 3]);

ok prefix_in_list(55366363, [6535, 55, 1, 8]);

或者,如果您喜欢数字解决方案:

代码语言:javascript
运行
AI代码解释
复制
sub compute_length {
    my ($n) = @_;
    return int(log($n) / log 10)
}

sub prefix_in_list {
    my ($needle, $haystack) = @_;
    for my $prefix (@$haystack) {
        my $start = $needle;
        my $divider = 10 ** (compute_length($start) - compute_length($prefix));
        return 1 if int($start / $divider) == $prefix;
    }
    return
}
票数 6
EN

Stack Overflow用户

发布于 2018-07-17 07:29:20

您也可以使用substr

代码语言:javascript
运行
AI代码解释
复制
# Checks if a number $num has a prefix given by an item in @$list
sub starts_width {
    my ( $num, $list ) = @_;

    for (@$list) {
        return 1 if (substr $num, 0, length $_) eq $_;
    }
    return 0;
}

或者,正如@choroba所提到的,可以使用index

代码语言:javascript
运行
AI代码解释
复制
return 1 if (index $num, $_) == 0;

请注意,即使在位置0处未找到匹配项,index也会扫描整个字符串。因此,substrindex最有效的解决方案很可能取决于您的数据。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51375300

复制
相关文章
如何在 Python 中检查一个字符是否为数字?
在编程中,我们经常需要检查一个字符是否为数字。这种判断对于数据验证、文本处理和输入验证等场景非常有用。Python 提供了多种方法来检查一个字符是否为数字。本文将详细介绍在 Python 中检查字符是否为数字的几种常用方法,并提供示例代码帮助你理解和应用这些方法。
网络技术联盟站
2023/06/01
8.9K0
JavaScript 检查是否是数字
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/109551.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/05
1.1K0
如何在Java中检查字符串是否为字母数字
You can check string is alphanumeric in Java using matches() method of Matcher class. The Matcher class is provided by java.util.regex package. Below I have shared a simple Java program in which I have taken a string and I am checking it using matches() method.
用户7886150
2021/04/28
5K0
LeetCode 2042. 检查句子中的数字是否递增
句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格。 每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文字母组成的 单词 。
Michael阿明
2022/01/07
1.7K0
LeetCode 2042. 检查句子中的数字是否递增
检查 JavaScript 变量是否为数字的几种方式
JavaScript 是一种动态类型的语言,这意味着解释器是在运行时确定变量类型的。这允许我们可以用同一变量中存储不同类型的数据。但是如果没有文档和保持一致性,在使用代码时,我们很有可能并不知道变量究竟是哪种类型。
疯狂的技术宅
2020/09/29
2.8K0
如何在Flutter和Dart中检查数字字符串
要检查字符串是否为数字字符串,可以使用double.tryParse()方法。如果返回值等于null,则输入不是数字字符串,否则是。
徐建国
2021/09/08
3.5K0
Python判断字符串是否以字母开头
直接上代码吧 import re rule = re.compile('^[a-zA-z]{1}.*$') str='123' if rule.match(str) is None: print(str+'不以字母开头') else: print(str+'以字母开头') str2='a12' if rule.match(str2) is None: print(str2+'不以字母开头') else: print(str2+'以字母开头')
week
2020/03/12
3K0
python判断unicode是否是汉字,数字,英文,或者其他字符
下面这个小工具包含了 判断unicode是否是汉字,数字,英文,或者其他字符。 全角符号转半角符号。 unicode字符串归一化等工作。
好派笔记
2021/11/03
2.9K0
[781]python去除字符串中开头|结尾|所有字母、数字
参考:https://blog.csdn.net/qq_25792799/article/details/80322889 https://blog.csdn.net/qq_40771567/article/details/86561158 https://www.cnblogs.com/pyse/p/9847812.html http://dy.163.com/v2/article/detail/DMA5CHFN0511RVML.html
周小董
2020/04/08
2.8K0
判断是否为数字
所以我们判断一个变量是否为数字,或者改字符串是否能转换成数字,就可以使用isNaN函数然后取反
阿超
2022/08/17
5.3K0
判断是否为数字
python 判断字符串是否是汉字,数字,英语或其他
编程思路: 1.用def定义四个函数,分别是用来判断汉字,数字,英语或其他(如下列代码所示) 2.最前面添加一个输入语句。最后面添加一个选择和输出同时的语句即可
matinal
2023/10/13
2580
javascript判断一个变量是否是数字
其实判断的是有两种需求的,一种是数字或者数字字符串,一种是数值类型,下面分别做一下介绍。
IT工作者
2021/12/28
1.8K0
判断一个string是否可以为数字
方案一:Try...Catch(执行效率不高)//////名称:IsNumberic///功能
Java架构师必看
2021/03/22
7950
html 检测输入是否数字,JavaScript怎么判断输入是否是数字?
JavaScript进行表单操作时,很多时候需要判断输入的内容是否为数字。JavaScript判断输入内容是否为数字的方法很多,下面本篇文章就来给大家介绍几种方法,希望对大家有所帮助。
全栈程序员站长
2022/09/10
4K0
html 检测输入是否数字,JavaScript怎么判断输入是否是数字?
JavaScript 中如何判断变量是否为数字
JavaScript 是一种动态类型语言,这意味着解释器在运行时确定变量的类型。实际上,这也允许我们在相同的代码中使用相同的变量来存储不同类型的数据。如果没有文档和一致性,我们在使用代码时并不总是知道变量的类型。
前端小智@大迁世界
2020/10/29
2.8K0
Python批量检查网页是否被注入其他页面
代码思路:对于给定的文件夹中所有网页文件,读取其内容,然后使用正则表达式检查该文件中是否包含iframe框架,如果有的话就返回文件名和iframe代码,表示是一个怀疑对象,但这并不意味着网页被攻击。使用代码快速挑选出所有的怀疑对象,最后再人工确认一下。 import os import re def detectIframe(fn): #存放网页文件内容的列表 content = [] with open(fn, encoding='utf8') as fp: #读取文件所有行,删除两侧的空白
Python小屋屋主
2018/04/16
1.2K0
javascript 检查字符串是否是数字的几种方法
代码: //判断是否是正整数 function IsNum(s) { if(s!=null){ var r,re; re = /\d*/i; //\d表示数字,
零式的天空
2022/03/02
1.8K0
以「数字孪生」重塑工业
机器之心报道 作者:机器之能 若以数字孪生比作人类大脑,就像我们在现实世界中凭直觉用大脑的能力去记忆、记录、分析、处理和预测一样,数字孪生也可以通过分析收集到的数据在数字世界中做同样的事情。 数字孪生技术在虚拟世界模拟制造流程,并帮助企业在数字孪生模型中灵活配置资源,并优化工作流程,快速响应不断变化的产品需求和订单渠道。 本文介绍了数字孪生所需要的几大方面条件:用于收集数据的智能设备、强大的网络连接设备支持以及实时互联的软硬件生态,并展望了制造业对这项技术的期待。 「数字孪生」是物理世界的数字化表达,它可以
机器之心
2023/03/29
3200
以「数字孪生」重塑工业
点击加载更多

相似问题

如何在Perl中检查单词是否以数字开头

20

如何在excel中检查数字是否以"+“开头?

12

检查向量是否以数字开头

559

检查数字是否以0或00开头

33

如何检查两个数字是否以相同的数字开头

44
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文