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

正则表达式重复捕获组未返回最后匹配结果的问题

正则匹配问题解决方案

你的问题出在正则开头的((\d+)+)上——这部分完全多余,还会先匹配字符串最开头的数字,再靠.*吃掉中间所有内容到最后一个x前,所以第一个捕获组拿到的是开头的1,嵌套的捕获组也重复了这个值。

要提取最后一个x之前的数字和x之后的第一个数字,直接用这个正则即可:

.*(\d+)x(\d)

逻辑说明:

  • .* 是贪婪匹配模式,会尽可能吃掉前面所有内容,直到遇到最后一个x才停止回溯,确保我们拿到的是最后一个x前的数字
  • (\d+) 捕获最后一个x前面的连续数字(对应测试输入里的3)
  • x 精准匹配目标分隔符
  • (\d) 捕获x后面的第一个数字(对应测试输入里的4)

如果要确保只匹配纯数字和x组成的字符串,避免其他无关字符干扰,可以加上首尾锚定:

^.*(\d+)x(\d)$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 22:01:18