yiyuyan77 发表于 2025-11-5 20:10:40

正则表达式类问题

为什么 正则表达式.取子匹配数量 () 只能取出 2
<火山程序 类型 = "通常" 版本 = 1 />

方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件">
参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
    如果 (来源对象 == 按钮1)
    {
      变量 正则表达式 <类型 = 正则表达式类>
      变量 匹配内容 <类型 = 文本型>
      匹配内容 = "AA11BBAA22BBAA33BBAA44BBAA55BB"
      正则表达式.匹配 (匹配内容, "AA(.*?)BB", , )
      计次循环 (5)
      {
            调试输出 ("匹配数量:" + 到文本 (正则表达式.取子匹配数量 ()), "匹配内容:" + 正则表达式.取子匹配文本 (1))
            正则表达式.到下一个匹配 ()

      }
    }
    返回 (0)
}


Xelloss0618 发表于 2025-11-5 21:44:13

因为它包括了整个匹配文本和括号的子匹配数量,结果基本就是括号数量+1

shuimiao 发表于 2025-11-5 22:23:46

Xelloss0618 发表于 2025-11-5 21:44
因为它包括了整个匹配文本和括号的子匹配数量,结果基本就是括号数量+1

这种匹配逻辑误导人,不合理,全部匹配文本不应该列入子匹配

山梦 发表于 2025-11-6 07:36:13

嗯,很跳跃!
页: [1]
查看完整版本: 正则表达式类问题