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

如何用正则表达式移除指定模式300x300以外的字符串内容?

解决方案

要通过String.replace()移除所有与“300x300”不匹配的字符,仅保留目标模式,有两种简洁的正则实现方式:

方法一:捕获目标并覆盖替换

这种方式逻辑直观且兼容性好,通过匹配整个字符串、捕获目标模式后,将整个内容替换为捕获到的目标:

const originalStr = "blahblah300x300dingding";
const targetStr = originalStr.replace(/^.*?(300x300).*$/, "$1");
// 输出结果:"300x300"

正则解析:

  • ^ 匹配字符串起始位置
  • .*? 非贪婪匹配目标模式前的任意字符(避免过度匹配导致漏掉目标)
  • (300x300) 将目标模式标记为捕获组1
  • .* 匹配目标模式后的任意字符
  • $ 匹配字符串结束位置
    替换时用$1引用捕获到的目标内容,直接替换整个字符串。

方法二:匹配前后冗余内容并删除

利用正则断言精准定位目标模式前后的所有冗余字符,直接替换为空:

const originalStr = "blahblah300x300dingding";
const targetStr = originalStr.replace(/^.*(?=300x300)|(?<=300x300).*$/g, "");
// 输出结果:"300x300"

正则解析:

  • ^.*(?=300x300) 正向先行断言:匹配从字符串开头到“300x300”之前的所有字符(确保后面紧跟目标模式)
  • (?<=300x300).*$ 反向后行断言:匹配从“300x300”之后到字符串结尾的所有字符(确保前面是目标模式)
  • g 全局匹配标记(保证所有冗余内容都被替换)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:24:31