如何在正则表达式中匹配0到10之间只包含两个且不超过两位数的整个字符串?

时间:2015-09-15 11:22:13

标签: regex

这个正则表达式对我不起作用,因为选择所有两位数和多位数的组而不是字符串。

abcde9 = match
abcde12 = not matched
abcde12345678 = not matched

我现在拥有的是这个,我只是不能将0和10作为两位数字包含在正则表达式中,任何人都可以帮助我吗?

\d{0,10}[1-9]

3 个答案:

答案 0 :(得分:0)

这就是你要找的东西:

/(0[1-9])$/

您可以测试该正则表达式以确保它符合您的需求: https://regex101.com/r/hX6lB7/3

答案 1 :(得分:0)

我认为你在寻找

^\D*(?:[0-9]|10)(?:\D+(?:[0-9]|10))?\D*$

请参阅demo

这将匹配包含1或2个整数的整个字符串,从0到10,没有其他数字。

正则表达式分解:

  • ^ - 字符串开头
  • \D* - 除数字
  • 以外的0个或多个字符
  • (?:[0-9]|10) - 0到10之间的数字
  • (?:\D+(?:[0-9]|10))? - 1或0次出现
    • \D+ - 除数字
    • 以外的1个或多个字符
    • (?:[0-9]|10) - 0到10之间的数字
  • \D* - 除数字
  • 以外的0个或多个字符
  • $ - 字符串结尾

答案 2 :(得分:0)

如果要匹配任何包含0到10之间的整数的字符串,请使用

^\D*(\d|10)\D*$

表示“任何非数字内容后跟一个数字或数字10,然后是任何非数字内容”

regex101

尝试