需求:编写匹配单个单词后跟多组数字的双方案正则表达式
正则表达式方案
方案1:匹配单个单词后跟至少两组数字
正则表达式
^[A-Za-z]+(?: \d+){2,}$
规则解释
^:锚定字符串起始位置,确保从开头匹配[A-Za-z]+:匹配由大小写字母组成的单个单词(若需支持带撇号的单词,可修改为[A-Za-z']+)(?: \d+){2,}:非捕获组,匹配「空格+一串数字」的组合,且该组合至少出现2次(保证存在多组数字)$:锚定字符串结束位置,确保没有多余内容
测试验证
- 匹配(返回TRUE):
"AB 40 256 556 1144 1296 1496 1722 1847 1915 1979 2018 2056 2106 2240 2294 2394 2539 2587 2660""Assembly 772 1604 1932 2187 2543 2759 2777"
- 不匹配(返回FALSE):
"ACR 105"(仅一组数字)"AB 2359 AB 2456 and AB 2823"(包含多个单词)"CDFA Budget for Pierce's Disease"(无有效数字组)
方案2:匹配纯连续多组数字
正则表达式
^\d+(?: \d+){1,}$
规则解释
^:锚定字符串起始位置\d+:匹配第一组数字(?: \d+){1,}:非捕获组,匹配「空格+一串数字」的组合,至少出现1次(确保总共有至少两组数字)$:锚定字符串结束位置,确保整个字符串仅由多组空格分隔的数字组成
测试验证
- 匹配(返回TRUE):
"40 256 556 1144""241 1110 1342 1822"
- 不匹配(返回FALSE):
"105"(仅单个数字)"AB 40 256"(包含非数字单词)"CDFA Budget"(无数字内容)
内容的提问来源于stack exchange,提问作者Sharif Amlani
相关产品推荐
相关产品推荐

