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的绝对新手,所以我实际上并没有尝试过自己的尝试 做这个的最好方式是什么?我应该使用正则表达式吗? 感谢。
答案 0 :(得分: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();
答案 1 :(得分:0)