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();