0

C#/.NET 4.0

我需要解析一个包含 18 位数字的字符串。我还需要左右两侧的子串。
示例字符串:

string a = "Frl Camp Gerbesklooster 871687120000000691 OPLDN 2010 H1";
string b = "some text with spaces 123456789012345678 more text";

应该如何解析:

string aParsed[0] = "Frl Camp Gerbesklooster";
string aParsed[1] = "871687120000000691";
string aParsed[2] = "OPLDN 2010 H1";

string bParsed[0] = "some text with spaces";
string bParsed[1] = "123456789012345678";
string bParsed[2] = "more text";

字符串中间总是有那个 18 位数字。我是 Regex 的绝对新手,所以我实际上并没有自己尝试过。
做这个的最好方式是什么?我应该使用正则表达式吗?
谢谢。

4

2 回答 2

3

您可以使用正则表达式之类的东西:(.*)(\d{18})(.*)

这里的关键是用来{18}指定必须有精确的18数字并捕获组中的每个部分。

var parts = Regex.Matches(s, @"(.*)(\d{18})(.*)")
    .Cast<Match>()
    .SelectMany(m => m.Groups.Cast<Group>().Skip(1).Select(g=>g.Value))
    .ToArray();
于 2012-04-10T09:54:29.300 回答
0

丹尼尔,

尽管问题已得到解答,但以下内容可能是学习正则表达式的有用参考。

http://txt2re.com

问候,利亚姆

于 2012-04-10T17:27:35.727 回答