首页 > 解决方案 > 0 到 299 之间的字符串的正则表达式,后跟 x 和 y 的某种组合

问题描述

我的正则表达式必须接受任何字符串,例如:299xxy、4xyy、156xy、23xxxyyy、23xxyxyy、0xxyy。 并且这些类型的字符串不被接受:300xy、400yx、305yyyx、444yxyxy这很明显,因为我的项目只允许在0 和 299范围内的数字后跟一个 x,然后是零个或多个 x 和 y 的任意组合,以及以 y 结尾

到目前为止,这就是我想出的^[0-2][0-9]*[0-9]?$测试数字 0 到 299 的方法,如果添加了 x,y 的条件,那么这就是我认为应该是我的最终答案^[0-2][0-9]*[0-9][x-y]*?$

但是当我在https://regex101.com/r/gT8wK5/1上进行测试时,接受的字符串的某些组合并没有给我适当的解决方案。

所以你能帮助我,这样我就可以理解我在正则表达式中做错了什么。我是正则表达式的新手,所以请提供像我这样的初学者可以理解的解决方案或有用的链接。

标签: regexstring

解决方案


我会使用这个正则表达式:

^[0-2]?\d?\dx[xy]*y$

演示和解释


推荐阅读