regex 在C#中使用正则表达式提取特定单词和第一个左括号后的数字

8mmmxcuj  于 2023-01-10  发布在  C#
关注(0)|答案(1)|浏览(98)

我想从一个以单词Id开头的句子中得到一个字符串:
收到索赔ID的信函:Sanjay Kumar(12345678 /NA 123456789)尊敬的客户,请查找报告
手术编号:桑杰·库马尔(12345678 /NA 123456789)
失效日期:12345678
代码

var regex = new Regex(@"[\n\r].*Id:\s*([^\n\r]*)");
  var useridText = regex.Match(extractedDocContent).Value;
myzjeezk

myzjeezk1#

您可以使用

var regex = new Regex(@"(?<=Id:[^()]*\()\d+");

请参见regex demo

  • 详细信息 *:
  • (?<=Id:[^()]*\()-正向后查找,匹配前面紧接Id:+零个或多个字符(() + (除外)的位置
  • \d+-一个或多个数位。

还可以考虑一种非后视方法:

var pattern = @"Id:[^()]*\((\d+)";
var useridText = Regex.Match(extractedDocContent, pattern)?.Groups[1].Value;

相关问题