正则表达式匹配问题:非零数字+空格+非零数字格式校验
解决你的正则匹配需求
没问题,我来帮你搞定这个正则匹配的问题!先明确你的核心需求:输入必须是「非零数字 + 一个或多个空格 + 非零数字」,而且整个输入只能是这三部分,不能多也不能少。
正确的正则表达式
直接上可用的正则:
^[1-9]\s+[1-9]$
逐部分解释
^:锚定字符串的开头,确保输入的第一个字符就是非零数字,不会出现开头有空格或其他字符的情况[1-9]:匹配1到9的任意非零数字,直接排除0的情况\s+:匹配一个或多个空白字符(包括普通空格、制表符等),如果你只想严格匹配普通空格,把它换成+即可[1-9]:再次匹配非零数字,确保结尾也是符合要求的数字$:锚定字符串的结尾,确保输入的最后一个字符就是非零数字,不会出现结尾多出来的字符
测试验证
- ✅ 匹配成功的例子:
"1 1"、"9 5"(多个空格)、"3 7"(制表符分隔) - ❌ 匹配失败的例子:
"1 0"(结尾是0)、"0 5"(开头是0)、"12 3"(开头是两位数字)、"1 23"(结尾是两位数字)、"1 "(缺少结尾数字)、" 1 1"(开头有多余空格)
你之前可能遗漏的要点
大概率是没加^和$这两个锚点!如果没有锚点,正则会匹配字符串中的任意符合片段,比如"1 0abc"里的"1 0"部分会被错误匹配,加上锚点后就能确保整个输入完全符合格式要求。
内容的提问来源于stack exchange,提问作者Deps
相关产品推荐
相关产品推荐

