我需要一些有希望的简单快捷的帮助。我从条形码中获取了一串数据,我需要拼接它以获得三个不同的值 - 帐号,日期和发票号。
必须为.Net Framework编写正则表达式。
条形码返回的示例如下所示 -
000295934009000306511302017001
前9位是帐号。我已经通过使用这个 - ^\d{9}
接下来的10位数字是发票编号。我不确定正则表达式会给我什么。
然后,发票编号后面的8位数字是日期(在此示例中为11302017
)。我需要将其拉成MM/DD/YYYY
格式。
我也将为此创建一个命名组模式。
(?<account>^\d{9})(?<date>XXXXXXX)(?<invoice>XXXXXXX) - the X's are what I need to figure out.
非常感谢任何帮助!
答案 0 :(得分:0)
这是正则表达式:
(\d{9})(\d{10})(\d{8})
自我解释:组1 9位,组2 10位和组3 8位。
你可以像这样使用它:
string pattern = @"(\d{9})(\d{10})(\d{8})";
string input = @"000295934009000306511302017001";
var match = Regex.Match(input, pattern);
var accountNumber = match.Groups[1].Value;
var invoiceNumber = match.Groups[2].Value;
var date = match.Groups[3].Value;
要获取DateTime
对象,请使用ParseExact
:
DateTime.ParseExact(date, "MMddyyyy", CultureInfo.InvariantCulture)
请务必为System.Text.RegularExpressions
和System.Globalization
添加使用指令!
答案 1 :(得分:0)
这是正则表达式:
(\d{9})(\d{10})([0-1][0-2][0-3][0-9]\d{4})
accountNumber - Group1
invoiceNumber - Group2
日期 - Groups3