如何编写正则匹配10位长且含空格的字符,排除无空格匹配项
正则匹配调整方案
需求说明
需要匹配总长度为10位、仅包含大写英文字母、数字、空格,且至少包含1个空格的字符串,排除无空格的10位纯字母数字组合。
调整后正则表达式
\s+((?=[A-Z0-9 ]* )[A-Z0-9 ]{10})
语法解释
\s+:匹配目标内容前的1个或多个空白字符,和原有逻辑保持一致(?=[A-Z0-9 ]* ):正向肯定预查,仅做校验不占用匹配字符,确认后续10位字符范围内至少存在1个空格[A-Z0-9 ]{10}:匹配正好10位由大写字母、数字、空格组成的字符- 外层的括号为捕获组,可直接从分组1中拿到需要的目标结果
匹配效果
针对提供的日志内容,该正则可精准命中以下目标:
ABCD 1111JDBS 234JDBS 11
不会匹配到AABCAKKA01、AABCAKKB02这类无空格的10位纯字母数字组合。
兼容说明
该正则语法兼容绝大多数主流编程语言(Python、Java、JavaScript、Go等)的正则引擎,可直接使用。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

