【发布时间】:2022-01-27 19:44:33
【问题描述】:
我正在寻求有关使用 Regex 从字符串中提取某些数据的帮助。我是 Regex 的新手,对编码还是比较陌生。我一直在寻找其他问题,但找不到任何初始字符串可能包含多个数据的地方,例如我的。
在下面,我希望提取文档编号并分配给“docNumber”字符串。
大小写始终为 10 位数字。 客户可能是 4 或 5 位数字。 文档的长度始终为 7 位数。
问题是我的正则表达式只是捕获了案例编号的前 7 位数字。
static void Main(string[] args)
{
String testText = "Case 1628855986 Customer 7739 Document 9153862";
String docNumber = Regex.Match(testText, @"\d{7}").Value;
Console.WriteLine("The reference you are looking for is: " + docNumber);
}
任何帮助将不胜感激!
【问题讨论】:
-
(?<=^|\s)\d{7}(?=$|\s),假设它总是被一个空白字符封装。(?<=^|[^\d])\d{7}(?=$|[^\d]),确保 7 位文档前后的字符不是数字。(?<=^|[^\d])中的第一个^表示行首,通过 OR 运算符|与负字符集[^\d]分隔,这意味着它匹配一个 7 位数字,该数字也标志着一个行或前面没有数字的 7 位数字。