【发布时间】:2014-01-06 19:59:26
【问题描述】:
我的配置是[HEADER].{3}$[.FOOTER]
我需要阅读此配置并准备一个二维数组,其中 [] 之间的字符串是值,而没有 [] 的字符串是要应用的正则表达式。
如何拆分上面的字符串来得到这个数组。
想法是:
IsRegEx Value
0 [HEADER]
1 .{3}$
0 [.FOOTER]
这样我就可以将正则表达式应用于index-1th 值并将数组连接回结果字符串。
我尝试过使用
string input = "[HEADER].{3}$[.FOOTER]";
char[] delimiterChars = { '[', ']'};
string[] words = input.Split(delimiterChars);
但这会删除 [] 并且没有办法区分给定字符串中的实际值和正则表达式模式。
如果拆分器是.,;,string[] parts = Regex.Split(input , @"(?<=[.,;])") 可能会起作用
【问题讨论】:
-
[HEADER].{3}$[.FOOTER]是正则表达式还是您的真实输入字符串? -
它是一个输入字符串,其中 .{3}$ 是一个需要应用于标题的正则表达式。基本上 [] 之间的任何内容都是一个值,而其余部分是一个正则表达式。
-
但是如果你的字符串是
[HEADER][A-Z]{3}$[.FOOTER],你怎么知道哪个部分是正则表达式呢?