正则表达式匹配任何不以零结尾的数字

Regular expression to match any number NOT ending in zero

本文关键字:结尾 数字 任何不 正则表达式      更新时间:2023-09-26

我要求输入骰子游戏。输入的数字是否能被十整除真的很重要。

我用''d+0表示DO以零结尾的数字。

我需要一个不以零结尾的数字。

提前谢谢。

也许这能达到的效果

'd*[1-9]

这不是正则表达式的好用法。

我建议使用模或整数除法运算符。

if (number % 10) {
  // number doesn't end in zero
}
'd+[1-9]

我认为应该有效。

这将至少匹配一个数字,后跟一个非零数字。

然而,您很可能需要以某种方式嵌入它,或者通过锚定它:

^'d+[1-9]$

验证完整的字符串是否只包含该数字(但您也可以将所述字符串转换为数字并进行mod 10)。

按照目前的方式(以及问题中的表达式),它将匹配像1203这样的数字,这两个表达式都没有问题,因为正则表达式匹配子字符串,除非您锚定它们(除非在某些环境中,它们默认锚定为这样——我认为Java会这样做)。

同样,这只适用于至少两位数字,就像你在问题中发布的表达式一样。我认为这是故意的。如果不是,那么在这两种情况下,+可能都应该是*

我认为

'd*[1-9]

效果更好。

我认为(d%10==0)是测试10整除性的更好方法。

除法技巧对整数有效,对小数无效。

如果有人想验证这个:

123.120

它以一个非有效的零结束。

所以123.12/X和123.120/X给出了相同的结果123.12%X和123.120%X相同(最后一个操作无效,因为值不是整数,所以无法获取浮点/数字的模块)

只能为整数值(integer/integer)获取模块。

还有人可以尝试寻找:

AnyTextWithNumbersNotEndingOnZero_0  <--- Not valid
AnyTextWithNumbersNotEndingOnZero    <--- Valid

所以最好的一个更清晰的可以是这样的东西:

/[0-9]*0$/

希望有帮助。

啊!如果想要字母和数字,但最后不是零:

/[0-9A-Za-z]*0$/

etc

如果您想使用正则表达式,请尝试此正则表达式

  ^([1-9]+)$  

使用纯JavaScriptvar num=温度;

if(temp % 10 !==0){
//your code
}

您可以尝试这个来排除0

'd+[^0]?