我希望在C#中解析出一个字符串,以便从字符串中获取相关的数据段。
数据流的一部分规则适用于具有此规则集的地址:
地址行之间带$的地址。如果少于29个字符,则以“^”结尾。
一些例子:
28 Atol Av $ Suite 2 $ ^
Hiawatha Park $ Apt 2037 ^
340布伦特伍德博士$ Fall Estate
对于段还有其他类似的规则,但如果我对此段有一个可靠的计划,我可以修改它以进行其余的解析。
我想知道是否有可以使用的正则表达式。
我有。{0,29} \ ^似乎可以解决问题。我最初没有逃脱^。
感谢, 丹
答案 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);
我会保留预编辑代码,因为它更明确,并更好地解释了用法。