正则表达式:使用一个 18 位数字解析特定字符串
本文关键字:数字 字符串 一个 正则表达式 | 更新日期: 2023-09-27 18:30:30
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 位数字。我是正则表达式的绝对新手,所以我实际上没有自己的尝试。
最好的方法是什么?我应该使用正则表达式吗?
谢谢。
您可以使用类似正则表达式的内容:(.*)('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();
Daniël,
尽管回答了这个问题,但以下内容可能是学习Reg表达式的有用参考。
http://txt2re.com
问候利亚姆