将括号内的文本提取到数组中,但也嵌套括号(C#)

时间:2017-04-12 11:30:36

标签: c# string extract

我正在研究别人的模板系统。几年前他们创建了这个系统。我尝试更新代码现在包含嵌套字符串:

代码采用包含"标记"的字符串,提取[* *]中的所有内容并将它们添加到数组中。

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。

0 个答案:

没有答案