字符串数据中嵌入的“特殊标识符”的术语

时间:2016-01-05 08:34:51

标签: json string parsing

我对如何描述这一点感到很茫然,所以我将从一个类似于我正在使用的JSON的简单示例开始:

"user_interface": {
    username: "Hello, %USER.username%",
    create_date: "Your account was created on %USER.create_date%",
    favorite_color: "Your favorite color is: %USER.fav_color%"
}

username create_datefavorite_color字段中的“特殊标识符”以%字符开头和结尾,并且应该替换为正确的信息那个特定的用户。 favorite_color字段的示例如下:

Your favorite color is: Orange

这些标识符是否有合适的术语?在重新发明轮子之前,我正在尝试搜索谷歌搜索最佳实践或库,但是我能想到的一切都会导致误报的大海。

1 个答案:

答案 0 :(得分:1)

关于%special identifier%主题的一些想法。让我们看看一小部分示例,它们实现了几乎相似的字符串替换。

<强> WSH Shell ExpandEnvironmentStrings Method

  

返回环境变量的扩展值。

WSH .vbs代码段

Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo WshShell.ExpandEnvironmentStrings("WinDir is %WinDir%")
' WinDir is C:\Windows

<强> .NET Composite Formatting

  

.NET Framework复合格式化功能将对象列表和复合格式字符串作为输入。复合格式字符串由与索引占位符混合的固定文本组成,称为格式项,对应于列表中的对象。格式化操作产生一个结果字符串,该字符串由原始固定文本与列表中对象的字符串表示混合而成。

VB.Net代码段

Console.WriteLine(String.Format("Prime numbers less than 10: {0}, {1}, {2}, {3}, {4}", 1, 2, 3, 5, 7 ))
' Prime numbers less than 10: 1, 2, 3, 5, 7

<强> JavaScript replace Method (with RegEx application)

  

... 匹配变量可用于文本替换,其中替换字符串必须动态确定... $ n ...第n个捕获的子匹配...

也称为Format FlagsSubstitutionBackreferenceFormat specifiers
JavaScript代码段

console.log("Hello, World!".replace(/(\w+)\W+(\w+)/g, "$1, dear $2"))
// Hello, dear World!

<强> Python Format strings

  

格式字符串包含由大括号{}括起的“替换字段”。大括号中未包含的任何内容都被视为文字文本,不会被原样复制到输出...

Python代码段

print "The sum of 1 + 2 is {0}".format(1+2)
# The sum of 1 + 2 is 3

<强> Ruby String Interpolation

  

双引号字符串允许使用#{...} ...

插值其他值

Ruby代码段

res = 3
puts "The sum of 1 + 2 is #{res}"
# The sum of 1 + 2 is 3

<强> TestComplete Custom String Generator

  

...将用于生成值的宏,文本,格式说明符和正则表达式的字符串。此参数的默认值为%INT(1,2147483647,1)%NAME(ANY,FULL)位于%CITY中。 ...此外,您可以使用特殊的格式说明符格式化生成的值。例如,您可以使用以下宏来生成具有指定最小长度(3个字符)的整数值序列 - %0.3d%INT(1,100,3)。

<强> Angular Expression

  

Angular表达式是类似JavaScript的代码段,主要放在插值绑定中,例如{{textBinding}} ...

<强> Django Templates

  

变量被{{和}}包围,如下所示:
My first name is {{ first_name }}. My last name is {{ last_name }}.
具有{&#39; first_name&#39;:& #39; John&#39;,&#39; last_name&#39;:&#39; Doe&#39;},此模板呈现为:
My first name is John. My last name is Doe.

<强> Node.js v4 Template strings

  

...模板字符串可以包含占位符。这些由美元符号和花括号($ {expression})表示。占位符中的表达式和它们之间的文本被传递给函数...

JavaScript代码段

var res = 3;
console.log(`The sum of 1 + 2 is ${res}`);
// The sum of 1 + 2 is 3

<强> C/C++ Macros

  

预处理在所有不是预处理程序指令的行中展开 ...   替换源代码。

C ++代码段

std::cout << __DATE__;
// Jan 8 2016

<强> AutoIt Macros

  

AutoIt有许多,它们是AutoIt使用的特殊只读变量。宏以@字符开头......   替换源代码。

AutoIt代码段

MsgBox(0, "", "CPU Architecture is " & @CPUArch)
; CPU Architecture is X64

<强> SharePoint solution Replaceable Parameters

  可以在项目文件中使用

可替换参数令牌,以便为在设计时未知实际值的SharePoint解决方案项提供值。它们在功能上类似于标准的Visual Studio模板标记...标记以美元符号($)字符开头和结尾。在项目部署时将项目打包到SharePoint解决方案包(.wsp)文件中时,所使用的任何令牌都将替换为实际值。例如,令牌$ SharePoint.Package.Name $可能会解析为字符串&#34;测试SharePoint包。&#34;

<强> Apache Ant Replace Task

  

替换是一个基于目录的任务,用于将给定字符串的出现替换为所选文件中的另一个字符串... 令牌 ... 令牌必须替换...

所以,基于功能上下文,我会称之为 %token% (这种strings with an identified "meaning"的味道。)