C# 使用c提取括号中的字符串#

C# 使用c提取括号中的字符串#,c#,regex,parentheses,C#,Regex,Parentheses,我有一个字符串——时间戳2017年10月24日星期二02:11:56-0400[1508825516987]—— 我想获取[]中的值(即1508825516987) 如何使用正则表达式获取值?说明: \[:[是一个元字符,如果您想从字面上匹配它,需要对其进行转义 (.*):以非贪婪的方式匹配所有内容并捕获它们 \]:]是一个元字符,如果您想从字面上匹配它,需要对其进行转义 解释来源: ^这是字符串的开头 ---你的(开始)角色是什么 *是介于-和之间的任何字符[ 您可以使用以下代码获得您想

我有一个字符串
——时间戳2017年10月24日星期二02:11:56-0400[1508825516987]——

我想获取
[]
中的值(即
1508825516987

如何使用正则表达式获取值?

说明:

  • \[
    [
    是一个元字符,如果您想从字面上匹配它,需要对其进行转义
  • (.*)
    :以非贪婪的方式匹配所有内容并捕获它们
  • \]
    ]
    是一个元字符,如果您想从字面上匹配它,需要对其进行转义
解释来源:

  • ^这是字符串的开头
  • ---你的(开始)角色是什么
  • *是介于-和之间的任何字符[

您可以使用以下代码获得您想要的结果

 MatchCollection matches = Regex.Matches("---TIMESTAMP Tue, 24 Oct 2017 02:11:56 -0400 [1508825516987]---", @"\[(.*?)\]", RegexOptions.Singleline);
 Match mat = matches[0];
 string val = mat.Groups[1].Value.ToString();

而字符串val将包含您所需的值。

请显示您已经尝试过的内容。在
[
]
中捕获值应该相当简单(不清楚您是否真的需要拆分-看起来您只是想匹配,然后从组中提取值。)已尝试(TIMESTAMP[a-zA-Z])+但运气不好。我知道这是错误的,我是正则表达式的学习者。因此,请显示您尝试的确切代码,以及结果,而不是“不起作用”。(编辑问题,而不是将其放在注释中。)可能重复的字符串数组中我可能包含大量文本[],但我想在行以开始时获取值---Timestamp@Karthikeyan不客气,我很高兴能为您提供帮助。您确定要使用贪婪的
*?
而不是勉强使用的等价物吗?---时间戳,2017年10月24日,星期二02:11:56-0400[1508825516987]---如何使用正则表达式从该字符串中获取该值2017年10月24日02:11:56。您可以使用此@“\,(.*)-”unicode字符获取该值2017年10月24日02:11:56,该字符可以分隔使用正则表达式所需的内容。
Regex regex = new Regex(@"^---.*\[(.*?)\]", RegexOptions.IgnoreCase | RegexOptions.Singleline);
 MatchCollection matches = Regex.Matches("---TIMESTAMP Tue, 24 Oct 2017 02:11:56 -0400 [1508825516987]---", @"\[(.*?)\]", RegexOptions.Singleline);
 Match mat = matches[0];
 string val = mat.Groups[1].Value.ToString();