当段是最大长度或以特定字符结束时,将字符串解析为段的方法

本文关键字:字符串 方法 结束 字符 | 更新日期: 2023-09-27 18:12:51

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

部分数据流的规则为Address,规则集为:

地址行之间有$。如果少于29个字符,以" ^ "结尾。

一些例子:

28 Atol Av$Suite 2$^

海华塔公园$Apt 2037^

340 Brentwood Dr.$Fall Estate

对于段还有其他类似的规则,但是如果我对这个段有一个坚实的计划,我可以修改它以用于其余的解析。

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

。{0,29}'^这似乎行得通。我一开始没有转义^

谢谢,丹

当段是最大长度或以特定字符结束时,将字符串解析为段的方法

您可以使用string.Split()来完成此操作。

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

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

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

int index = substrings.Length - 1;
substrings[index] = substrings[index].TrimEnd('^');

您可以使用正则表达式和Regex.Split(),但是如果您需要做的只是在'$'上分割并修剪'^',那么您真的不需要它。为此编写正则表达式是多余的。

EDIT:现在我想到了,您可以拆分'$''^'并丢弃空条目,从而节省了修剪步骤。

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

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