所有正数偶数的正则表达式

时间:2010-09-09 20:07:53

标签: regex

我目前正在注册翻译应用程序,我们正在研究正则表达式。这是一个家庭作业问题。我已经在这一段时间了,我只是感到困惑。我不想只是一个答案,只要确保我学会它就会非常感激。

我只需要所有偶数的正则表达式,前导0表示没问题。 以下是我需要的一些例子......(例如,0,00,...... 2,4,6,8,10,010,12 ......)

感谢。

3 个答案:

答案 0 :(得分:8)

要使数字均匀,它必须以偶数结束。偶数位数字分别为0,2,4,6和8.使用字符类指定每个位置允许的数字。

答案是:

/^[0-9]*[02468]$/

说明:

^       Start of line/string
[0-9]   Any digit from zero to nine.
*       Repeat the last token zero or more times.
[02468] Any even digit.
$       End of line/string.

为了帮助您学习正则表达式,我建议您阅读Regular Expression Quick Start

您可能还会看到使用\d代替[0-9]。在一些正则表达式引擎中,这些是等价的,但在其他情况下,\d也匹配在国外被视为数字的字符。

了解更多信息

作为练习,您可以尝试找出如何调整此正则表达式以禁止前导零。提示:有三种类型的数字:第一个数字,中间数字,最后一个数字。请记住,只有最后一位数字必须存在,其他数字是可选的。

答案 1 :(得分:4)

/\d*[02468]$/         

基本上你想要匹配所有数字,直到最后一个数字,这是\ d *的作用。 (\ d *读取匹配零个或多个数字)然后最后一个数字必须是0,2,4,6或8.这是通过[02468]完成的,并且$将它锚定到行尾。当您在字符周围放置方括号时,它表示您只想匹配此字符列表。另一个例子是,如果你有一个/[abc]/的正则表达式,如果一个字符串中有一个'a','b'或'c',你就会匹配。

答案 2 :(得分:0)

好吧,因为这是家庭作业,我不想给你完整的答案,所以这里有一个提示,甚至一个数字必须以0,2,4,6,8结束