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

使用正则表达式替换去除姓名列表中开头的Mr前缀问题求助

问题原因

你写的正则^(Mr)(.*)$会将Mr之后的所有内容(包括紧随Mr的空格)都捕获到第二分组$2中,所以替换后自然会多出前置空格。

修复方案

调整正则,把Mr后面跟随的空白字符排除到目标捕获组外即可,推荐两种写法:

  1. 分组捕获法
    正则写为:^Mr\s*(.*)$,替换内容填$1
    \s*会匹配Mr之后的任意数量空白字符(1个空格、多个空格、制表符都可兼容),剩下的姓名内容会被捕获到第一分组中,替换后就不会有多余空格。
  2. 零宽断言法(无需替换分组,直接保留匹配内容)
    正则写为:(?<=^Mr\s).*,替换内容直接填$0即可,该写法只会匹配Mr 之后的姓名内容,不需要额外处理前缀。

两种方案最终的输出都和你预期的结果完全一致:

James
Kolt
Tony jr
Wilson

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:48:03