我正在研究别人的模板系统。几年前他们创建了这个系统。我尝试更新代码现在包含嵌套字符串:
代码采用包含"标记"的字符串,提取[* *]中的所有内容并将它们添加到数组中。
E.g。
string message = "Hello, [*database.table.field*]"
* NB。标签是这样的:[ database.table.field ]
会变成:
str[0] = database
str[1] = table
str[2] = field
对于这个例子,string.split工作正常。
但是,我有这样的嵌套情况:
string message = "Hello, [*database.table.field.[*database.table.field*]*]"
进一步加剧问题;一个字符串可能包含5个元素:
string message = "Hello, [*database.table.field.fieldx.fieldy*]"
全力以赴;我最终可能会得到一个完整的字符串:
string message = "Hello, [*database.table.field*] thank you for your recent student application, I am pleased to inform you that you have been accepted on the, [*database.table.field.[*database.table.field*]*] course. Please can you send your [*database.table.field.fieldx,fieldy*]...
到目前为止我尝试过的是string.split和array.length的组合,它让我有了很多if / else语句。
是否有更好的解决方案,我已经坚持了一年,问题的一部分是我无法在技术上传达我想要实现的目标。
编辑:我想要实现的是;
A)我需要识别"标签"的每个实例。 B)我需要将它们分成一个列表吗?这样我就可以访问任何标签的值。
例如,这个嵌套的例子将成为:
[*database.table.field.[*database.table.fieldx*]*]
str[0] = database
str[1] = table
str[2] = field
str[0] = database
str[1] = table
str[2] = fieldx
然后,我将使用标签中的数据查询数据库。这样:
str[0] = database
str[1] = table
str[2] = field
我将查看正确的数据库,表格和字段以提取数据:" Marcus",然后将标记替换为Marcus。