匹配模式间接寻址

简介: 匹配模式间接寻址

匹配模式间接寻址

匹配模式间接寻址是间接寻址的一种特殊形式。间接运算符替换模式匹配。间接的值必须是有效的模式。

  • 间接寻址与模式匹配一起使用,以检查有效的15位身份证或18位身份证。
ClassMethod Indirection5(id)
{
  s pattern = "18N"
  s:($length(id) = 15) pattern = "15N"
  if id ? @pattern { 
    w !,"有效身份证"
  }
}
复制代码

在模式匹配中使用间接寻址是定位应用程序中使用的模式匹配的一种便捷方式。在这种情况下,可以将模式存储在单独的变量中,然后在实际的模式匹配测试中间接引用它们。只需要修改模式匹配变量本身。

参数间接寻址

在参数间接寻址中,间接寻址计算一个或多个命令参数。

ClassMethod Indirection6()
{
  s a = "var1",b = "var2 = 3 * 4 + var1"
  s @a = 5*6
  s @b
  w "a = ",a,!
  w "b = ",b,!
  w @a,!
  s var2 = 3
  s var1 = 6
  w @b,!
}
复制代码

下标间接寻址

下标间接寻址是名字间接寻址的扩展形式。在下标间接寻址中,间接寻址的值必须是本地或全局数组节点的名称。下标间接在语法上不同于其他形式的间接。下标间接使用以下格式的两个间接运算符:

@array@(subscript) 
复制代码
ClassMethod Indirection7()
{
  k ^color
  s ^color(1) = "red"
  s ^color(2) = "yellow"
  s ^color(3) = "black"
  s ^color(4) = "green"
  s ^color(5) = "write"
  s ^color(1, 1) = "red1"
  s ^color(1, 2) = "red2"
  s ^color(1, 3) = "red3"
  s ^color(1, 4) = "red4"
  s ^color(1, 5) = "red5"
  zw ^color
  s global = "^color"
  s node = "1"
  s sub = "1"
  w @global@(node, sub),!
  //w @global(node, sub),!
  s ID = ""
  for {
    s ID = $o(^color(ID))
    q:(ID = "")
    s data = $zr
    w @data,!
    s sub = ""
    for {
      s sub = $o(^color(ID , sub))
      q:(sub = "")
      w "Indirection:" _ @global@(ID, sub),!
    }
  }
}
复制代码
  • 自定义全局变量名称,节点名称使用下标间接寻址输出。
/// Sample.PersonD
ClassMethod Indirection8()
{
  r !,"global bame: ", name
  r !,"start: ", start
  r !,"end: ", end
  s array = "^" _ name
  s subNode = "Employee"
  for i = start : 1:end {
    if ($d(@array@(i))) {
      //w "@array@("_ i _"):" _ @array@(i),!
      w "@array@("_ i _"):" _ $li(@array@(i), 3),!
    }
    if ($d(@array@(i, subNode))){
      //w "@array@("_ i _ "," _ subNode _ "):" _ @array@(i, subNode),!
      w "@array@("_ i _"):" _ $li(@array@(i, subNode), 1),!
    }
  }
  q
}


相关文章
|
人工智能 机器人 Unix
正则表达式的应用
正则表达式的应用
119 0
正则表达式匹配
【10月更文挑战第8天】
|
8月前
|
自然语言处理
正则表达式1
正则表达式
|
8月前
10.正则表达式匹配
10.正则表达式匹配
|
机器学习/深度学习 程序员 vr&ar
正则表达式的使用
正则表达式的使用
72 0
|
自然语言处理 JavaScript 前端开发
常用正则表达式
常用正则表达式
139 0
|
移动开发
【小技巧】正则表达式
正则表达式小技巧 1 空行替换 ^\r\n
531 0
|
C#
C#正则表达式的完全匹配、部分匹配及忽略大小写的问题
原文:C#正则表达式的完全匹配、部分匹配及忽略大小写的问题 问题的提出 根据用户给定表达式,里面含有各种数学函数,如求绝对值,三角函数,平方、开方等,分别以类似ABS(表达式),Sin(表达式),ASin(表达式),POW(表达式)等形式表述。
2038 0
|
JavaScript 前端开发 索引