Joh*_*ica 31
非常简单,你只需要(1)用反斜杠转义括号,(2)(.*?)
用来捕捉内容.
\[(.*?)\]
Run Code Online (Sandbox Code Playgroud)
括号是一个捕获组,它们捕获它们的内容供以后使用.之后的问号.*
使得匹配非贪婪.这意味着它将匹配可能的最短匹配,而不是最长的匹配.当你在一行中有多个匹配时,会出现贪婪和非贪婪之间的区别:
Hi [Stack], Here is my [Tag] which i need to [Find].
^______________________________________________^
Run Code Online (Sandbox Code Playgroud)
贪婪的匹配将在两组方括号之间找到最长的字符串.那是不对的.非贪婪的比赛会找到最短的:
Hi [Stack], Here is my [Tag] which i need to [Find].
^_____^
Run Code Online (Sandbox Code Playgroud)
无论如何,代码最终看起来像:
string regex = @"\[(.*?)\]";
string text = "Hi [Stack], Here is my [Tag] which i need to [Find].";
foreach (Match match in Regex.Matches(text, regex))
{
Console.WriteLine("Found {0}", match.Groups[1].Value);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16822 次 |
最近记录: |