我需要找到 [] 的正则表达式
例如,如果字符串是 - Hi [Stack],这是我需要 [Find] 的 [Tag]。
它应该返回
堆叠、标记、查找
最佳答案
很简单,你只需要(1)用反斜杠转义括号,(2)使用 (.*?)
来捕获内容。
\[(.*?)\]
括号是一个捕获组,它们捕获其内容供以后使用。
.*
后面的问号使匹配非贪婪。这意味着它将匹配最短的匹配项,而不是最长的匹配项。当一行中有多个匹配项时,贪婪和非贪婪之间的区别就出现了:Hi [Stack], Here is my [Tag] which i need to [Find].
^______________________________________________^
贪婪匹配将在两组方括号之间找到可能的最长字符串。那是不对的。非贪婪匹配将找到最短的:
Hi [Stack], Here is my [Tag] which i need to [Find].
^_____^
无论如何,代码将结束 looking like :
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);
}
关于asp.net - 正则表达式 [] 之间的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3677255/