Asp.net

正則表達式之間的任何東西

  • October 8, 2019

我需要找到正則表達式

$$ $$ 例如,如果字元串是 - Hi

$$ Stack $$, 這是我的$$ Tag $$我需要$$ Find $$. 它應該返回堆棧、標記、查找

非常簡單,您只需要 (1) 用反斜杠轉義括號,以及 (2) 用於(.*?)擷取內容。

\[(.*?)\]

括號是一個擷取組,它們擷取其內容以供以後使用。後面的問號.*使匹配不貪心。這意味著它將匹配可能的最短匹配,而不是最長的匹配。當您在一行中有多個匹配項時,就會出現貪婪和非貪婪之間的區別:

Hi [Stack], Here is my [Tag] which i need to [Find].
  ^______________________________________________^

貪心匹配將在兩組方括號之間找到可能的最長字元串。那是不對的。非貪心匹配會找到最短的:

Hi [Stack], Here is my [Tag] which i need to [Find].
  ^_____^

無論如何,程式碼最終看起來像

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

引用自:https://stackoverflow.com/questions/3677255