正则替换时调用函数 By FeiYue

使用方法很简单,不会留言!

;-------------------------------
;  正则替换时调用函数  By FeiYue
;
;  第三个参数为自定义函数名或函数对象
;  自定义函数接受一个参数,该参数为对象
;  对象.0为整个匹配,对象.N为第N个子匹配
;-------------------------------
RegExReplaceFunc(ByRef s, re, func)
{
  if !IsFunc(func)
    return s
  SetBatchLines, % (bch:=A_BatchLines) ? "-1":"-1"
  re:=RegExMatch(re, "^[^()[\\]*\)") ? "OS" re : "OS)" re
  VarSetCapacity(ss, VarSetCapacity(s,-1)), r:="", i:=1
  While (p:=RegExMatch(s,re,r,i)) and (len:=r.Len(0))
    ss.=SubStr(s,i,p-i) . %func%(r), i:=p+len
  ss.=SubStr(s,i)
  SetBatchLines, %bch%
  return ss
}

s:="==abc==abc=="
re:="(\w+)"
MsgBox, 4096,, % RegExReplaceFunc(s, re, "StringUpper")
return

StringUpper(r) {
  return Format("{:U}", r.1)
}

StringUpper2(r) {
  s:=r.0
  StringUpper, s, s
  return s
}

给TA捐赠
共{{data.count}}人
人已捐赠
其他

电脑软件安装设置测试备份与保护-草稿版-第1版

2021-7-22 9:58:13

其他案例

下拉列表精炼搜索(支持汉字和拼音)-作者:无关风月

2021-7-22 14:04:56

4 条回复 A文章作者 M管理员
  1. 。13530

    一起学习 初进autoahk??

  2. Ash

    ???

  3. sunwind

    ?

  4. dome

    不错,加油

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索