1
158
所以regex匹配一个可选的
工具书类 : |
2
58
真的。。。这里有很多好的解决方案!!在上述所有解决方案中,我同意@nortally使用
我正在运行gnu bash,版本
这是我检查的版本
这种方法也解释了负数,其他一些解决方案会产生错误的负数结果,并且它允许前缀“+”(例如+30),这显然是一个整数。 结果:
伊格纳西奥·瓦兹奎兹·艾布拉姆斯(IgnacioVazquezAbrams)提供的解决方案在解释之后也非常简洁(如果您喜欢regex的话)。但是,它不处理带
|
3
24
迟到的人来参加聚会。我非常惊讶,没有一个答案提到最简单、最快速、最便携的解决方案;
在比较之前修剪任何符号都有点像黑客,但这使得case语句的表达式简单得多。 |
4
9
对于bash 3.1之前的可移植性(当
bash还支持扩展的globs,不过我不记得从哪个版本开始。
|
5
8
我喜欢使用
我自己的解决方案是使用参数扩展来丢弃所有的数字,看看是否还剩下什么。(我还在用3.0,还没用过
|
6
3
下面是对它的另一种处理(仅使用test builtin命令及其返回代码):
|
7
2
您可以去掉非数字并进行比较。下面是一个演示脚本:
测试输出如下所示: 44 44 Integer -44 44 Integer 44- 44 Not integer 4-4 44 Not integer a4 4 Not integer 4a 4 Not integer .4 4 Not integer 4.4 44 Not integer -4.4 44 Not integer 09 9 Not integer |
8
2
对于我来说,最简单的解决方案是在
当然,只有当值为零对应用程序没有意义时,此解决方案才有效。在我的情况下,这是正确的,而且这比其他解决方案简单得多。
正如注释中指出的,这会使您受到代码执行攻击:
|
9
0
或与SED:
|
10
0
加上伊格纳西奥·瓦兹奎兹·艾布拉姆斯的回答。这将允许+符号先于整数,并且允许任何数量的零作为小数点。例如,这将允许将+45.00000000视为整数。
|
11
0
为了搞笑,我粗略地计算了一组函数来做这个(是字符串、是int、是float、是alpha字符串或其他),但是有更有效(更少的代码)的方法来做这个:
通过这里的一些测试,我定义了-44是一个int,但44-不是等。:
输出:
注意:前导0可以在添加诸如八进制之类的数字时推断出其他的东西,因此如果您打算将“09”视为int(我正在做的),最好去掉它们(例如
|
Abeezuo · Ruby正则表达式,用于精确包含x个整数的字符串 2 年前 |
manOnTheMoon · 对于循环-我只能输入1个整数 2 年前 |
grative · 我怎样才能掩盖Swift中的第一个和最后一个角色? 2 年前 |
Kaiger Chainer · 将一个元素从list转换为int 2 年前 |
MOmo · C++中字符串的最后一个字符使用n后退()和铸造 2 年前 |
arka · C语言中奇怪的联合行为 2 年前 |