Regex 匹配至少包含一个“的偶数”;5“;数字
我必须找到定义任意偶数的正则表达式,其中至少有一个“5”数字。我一直在想:Regex 匹配至少包含一个“的偶数”;5“;数字,regex,Regex,我必须找到定义任意偶数的正则表达式,其中至少有一个“5”数字。我一直在想: (0+1+2+3+4+5+6+7+8+9)* 5 (0+1+2+3+4+5+6+7+8+9)* (0+2+4+6+8) 这样行吗?有没有办法把它缩短 嗯,我不确定这是否是发布此问题的正确网站……但标签存在:p您的regexp看起来不错。我不认为你能把它缩短(如果我们谈论的是理论上的正则表达式;真正的编程语言有快捷方式,比如任何数字的[0-9]或\d) 正如其他人指出的那样,您的regexp还将匹配从任意数量的零开始的数
(0+1+2+3+4+5+6+7+8+9)* 5 (0+1+2+3+4+5+6+7+8+9)* (0+2+4+6+8)
这样行吗?有没有办法把它缩短
嗯,我不确定这是否是发布此问题的正确网站……但标签存在:p您的regexp看起来不错。我不认为你能把它缩短(如果我们谈论的是理论上的正则表达式;真正的编程语言有快捷方式,比如任何数字的
[0-9]
或\d
)
正如其他人指出的那样,您的regexp还将匹配从任意数量的零开始的数字。如果您不想这样做,您当然会尝试将第一个数字与(1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9)
匹配,但现在您遇到了一个特殊情况:如果第一个数字是5
?因此,您必须添加更多分支
您的regexp很好,但我认为让它只匹配数字而不匹配前导零是一个很好的练习,您无论如何都应该尝试它,即使您的任务不需要这样做
这里有一个一般性的建议。需要您创建正则表达式的问题最好能得到帮助。也就是说,在尝试编写regexp之前,您要为它创建一组测试。它有许多好处:
你的regexp看起来不错。我不认为你能把它缩短(如果我们谈论的是理论上的正则表达式;真正的编程语言有快捷方式,比如任何数字的
[0-9]
或\d
)
正如其他人指出的那样,您的regexp还将匹配从任意数量的零开始的数字。如果您不想这样做,您当然会尝试将第一个数字与(1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9)
匹配,但现在您遇到了一个特殊情况:如果第一个数字是5
?因此,您必须添加更多分支
您的regexp很好,但我认为让它只匹配数字而不匹配前导零是一个很好的练习,您无论如何都应该尝试它,即使您的任务不需要这样做
这里有一个一般性的建议。需要您创建正则表达式的问题最好能得到帮助。也就是说,在尝试编写regexp之前,您要为它创建一组测试。它有许多好处:
在你的符号中,
+
是指|
吗?看起来不错,但你应该先决定一个符号(在理论CS中,你通常使用|
)。你必须涵盖数字不能以0
开头的问题吗?@Howard从数学上讲,012345=12345(因此它应该是不相关的)@霍华德:这个问题读起来就像是来自一个介绍性的自动机类,而不是来自实际的编程类。你的符号中的+
是不是意味着|
?看起来不错,但你应该先决定一个符号(在理论CS中,你通常使用|
).你是否必须涵盖数字不能以0
开头的问题?@Howard从数学上讲,012345=12345(因此它应该是不相关的)@Howard这个问题读起来好像来自一个介绍性的自动机类,而不是实际的编程类“如果您已经编写了许多测试,并且regexp通过了测试,那么您几乎可以肯定您已经编写了测试。”这是将测试与拼写检查进行比较的双关语吗?“如果您已经编写了许多测试,并且regexp通过了测试,那么您几乎可以肯定您已经编写了测试。”这是将测试与拼写检查进行比较的双关语吗?