asp.net - 正则表达式 [] 之间的任何内容

标签 asp.net regex

我需要找到 [] 的正则表达式

例如,如果字符串是 - 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/

相关文章:

java - 用于手机号码验证的正则表达式

javascript - 不太严格的电话正则表达式

python - 如何从较大的字符串中减去已知的子字符串

c# - 如何动态添加CSS类?

asp.net - 如何在ASP.NET MVC4中添加新页面?

c# - 从服务器更新 aspx 页面

javascript - 如何替换捕获组而不是 RegEx 中的完整匹配项?

c# - gridview e.CommandArgument 字符串格式不正确

asp.net - 处理用户在 ASP.NET MVC 网站中按下 'Enter' 键

不包含第一个字符的正则表达式模式