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

为何Regex.Match匹配目标字符串的结果始终为false?

正则匹配失败的修正方案

你的正则匹配失败是因为正则表达式的格式和实际selectedKey字符串的结构完全不匹配,具体差异和修正方法如下:

问题点分析

  • 实际字符串使用大括号{}包裹内容,但你的正则里错误地写了小括号的转义\(和\)
  • 实际字符串中两个大括号块的分隔符是, (逗号加空格),你的正则用\s+\(来匹配,完全不符合实际结构
  • 正则开头未匹配字符串最前面的{,结尾也未覆盖最后的}

修正后的正则与代码

修正后的正则会完全匹配{X=108,Y=104}, {Width=157, Height=164}这类格式:

var selectedKey = FileList.Keys.ElementAt(si);

// 修正后的正则,适配实际的大括号结构和分隔符
Match match = Regex.Match(selectedKey, @"\{X=(\d+),Y=(\d+)\},\s+\{Width=(\d+),\s+Height=(\d+)\}");
if (match.Success)
{
    // 提取捕获的数值示例
    int x = int.Parse(match.Groups[1].Value);
    int y = int.Parse(match.Groups[2].Value);
    int width = int.Parse(match.Groups[3].Value);
    int height = int.Parse(match.Groups[4].Value);
    // 执行后续业务逻辑
}

正则说明

  • \{ 和 \}:转义匹配实际字符串中的大括号(大括号在正则中属于特殊元字符,必须转义才能匹配字面量)
  • ,\s+:匹配两个大括号块之间的逗号加任意数量的空白字符
  • (\d+):依然用于捕获对应的数字值,和原正则逻辑一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:22:05