You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则匹配Mr开头且后续不只有独立数字的字符串

正则匹配需求:过滤Mr后仅跟独立数字的字符串

问题场景

待匹配的字符串示例如下:

Mr 1
Mr Ace The 3rd
Mr James 2
Mr 299
Mr Seth

所有字符串均以Mr开头,需要匹配Mr后不是仅由独立数字组成的字符串,目标匹配结果为:

Mr Ace the 3rd
Mr James 2
Mr Seth

需要排除的不符合要求的字符串如下(Mr后仅跟独立数字):

Mr 1
Mr 299 

原有方案问题

你尝试的正则^(Mr\s)(.*\D)$无法匹配Mr James 2,是因为该正则要求字符串末尾必须是非数字字符,Mr James 2结尾为数字,所以命中失败。

正确实现方案

使用负向先行预查实现需求,推荐正则:

^Mr\s(?!\d+$).*$

正则逻辑说明:

  • ^ 匹配字符串起始位置
  • Mr\s 匹配固定前缀Mr加一个空格
  • (?!\d+$) 负向预查规则:当前位置往后到字符串结尾的内容不能全为数字,刚好排除Mr后仅跟独立数字的场景
  • .*$ 匹配剩余所有内容直到字符串结尾
    该正则可以正确命中所有符合要求的字符串,同时排除掉需要忽略的内容。

内容的提问来源于stack exchange,提问作者Maxxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:06:04