在段为最大大小或以特定字符终止时将字符串解析为段的方法

时间:2016-10-12 19:02:30

标签: c# parsing

我希望在C#中解析出一个字符串,以便从字符串中获取相关的数据段。

数据流的一部分规则适用于具有此规则集的地址:

地址行之间带$的地址。如果少于29个字符,则以“^”结尾。

一些例子:

28 Atol Av $ Suite 2 $ ^

Hiawatha Park $ Apt 2037 ^

340布伦特伍德博士$ Fall Estate

对于段还有其他类似的规则,但如果我对此段有一个可靠的计划,我可以修改它以进行其余的解析。

我想知道是否有可以使用的正则表达式。

我有。{0,29} \ ^似乎可以解决问题。我最初没有逃脱^。

感谢, 丹

1 个答案:

答案 0 :(得分:1)

您可以使用string.Split()执行此操作。

string [] substrings = string.Split('$');

现在您有一个字符串数组,其中包含'$'个字符之间的值。

然后,我想你只想摆脱数组最后一个元素的'^'字符(如果它存在)。

int index = substrings.Length - 1;

substrings[index] = substrings[index].TrimEnd('^');

你可以使用正则表达式和Regex.Split(),但是如果你需要做的就是在'$''^'上进行分割,你真的不需要它。为此编写正则表达式会有点过分。

编辑:现在我想起来了,您可以在'$''^'上拆分,只需丢弃空条目,为您节省修剪步骤。

string [] substrings = string.Split("$^".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

我会保留预编辑代码,因为它更明确,并更好地解释了用法。