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

如何修复Notepad++中提取仅数字+Users格式内容的正则问题

解决方案

你的需求是保留两类行:一是带「数字+Users」格式的行(要去掉行首非数字前缀,比如®、AT这类),二是所有和Users无关的行。之前的两个正则没效果,问题出在逻辑偏差:

第一个正则^.*?(\d+Users)替换成\1,只能匹配带数字Users的行,但如果行内数字Users后面还有其他内容会被截断,而且没考虑到要保留非Users行的需求;第二个正则^(?!\d+Users).*\r?\n?替换为空,是要删除所有不以数字Users开头的行,这会把带前缀的数字Users行(比如®123Users)和你要保留的非Users行一起删掉,完全不符合要求。

正确处理方法

两步操作(适配绝大多数文本编辑器/工具)

第一步:清理带前缀的「数字Users」行

查找正则:

^[^\d]*(\d+Users)$

替换为:

\1

这个正则会匹配行首所有非数字字符(包括0个,也就是纯123Users的行也能匹配),捕获后面的「数字+Users」部分,替换后就去掉了前缀,同时纯数字Users的行不会被改动。

第二步:无需额外删除操作

因为你要保留非Users相关的行,所以第一步处理完就完成了所有需求——带前缀的数字Users行被清理,纯数字Users行不变,其他非Users行原样保留。

一步到位的正则(支持多分组替换的工具可用)

如果你的工具支持多分组替换,可以用这个一次性完成:
查找正则:

^(?:[^\d]*(\d+Users)|(.+))$

替换为:

\1\2

这个正则会匹配两种情况:

  • 带非数字前缀的数字Users行:捕获「数字+Users」部分(\1)
  • 其他所有行:捕获整行内容(\2)
    替换时将两个捕获组拼接,数字Users行只剩清理后的内容,其他行完全保留原样。

测试示例

假设你的样本是:

®123Users
AT456Users
Bolt
1997
XYZ789Users
Hello World

处理后得到期望结果:

123Users
456Users
Bolt
1997
789Users
Hello World

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:17:20