C# 从特定文本格式中提取数字和文本
我有一个类似的文本: 你好@[123456:Foo] 如何获取“123456”和“Foo” 我的尝试:C# 从特定文本格式中提取数字和文本,c#,regex,C#,Regex,我有一个类似的文本: 你好@[123456:Foo] 如何获取“123456”和“Foo” 我的尝试: @\[([\d+]):([\s+])\] 你可以用 @\[(\d+):([^][]*)] 看。您需要的值在第1组和第2组中 详细信息 @\[-a@[子字符串 (\d+)-捕获组1:一个或多个数字 :-冒号 ([^][]*)-捕获组1:除]和[ ]-一个]字符 C#演示: 为什么要投反对票?很可能是因为你没有展示你在解决问题上的努力。你也没有提供一个应该和不应该匹配的示例列表,包括任何不
@\[([\d+]):([\s+])\]
你可以用
@\[(\d+):([^][]*)]
看。您需要的值在第1组和第2组中
详细信息
-a@\[
子字符串@[
-捕获组1:一个或多个数字(\d+)
-冒号:
-捕获组1:除([^][]*)
和]
[
-一个]
字符]
为什么要投反对票?很可能是因为你没有展示你在解决问题上的努力。你也没有提供一个应该和不应该匹配的示例列表,包括任何不寻常的边缘情况。有许多表达式可以匹配特定情况下您需要的内容,但它们可能不够通用,无法应用于您的问题。这是一个非常糟糕的解决方案尝试,根本不匹配。我不擅长正则表达式,所以仍然缺少“自动接受来自Wiktor的正则表达式答案”功能
var m = Regex.Match(str, @"@\[(\d+):([^][]*)]");
if (m.Success)
{
Console.WriteLine(m.Groups[1].Value);
Console.WriteLine(m.Groups[2].Value);
}