代码之家  ›  专栏  ›  技术社区  ›  MicMit

.Net新正则表达式(@“[]{2,}”,options)的含义是什么

  •  2
  • MicMit  · 技术社区  · 14 年前

        RegexOptions options = RegexOptions.None;
        Regex regex = new Regex(@"[ ]{2,}", options);
        string outStr = regex.Replace(inStr, @" ");
    

    4 回复  |  直到 14 年前
        1
  •  3
  •   Lasse V. Karlsen    14 年前

    我们来分解一下:

    [ ]          <-- matches a single space
    {2,}         <-- previous token is repeated 2 or more times
    

    所以这会匹配2个或更多的连续空格。

    然后.Replace调用,这将用一个空格替换2个或更多空格的序列。

        2
  •  3
  •   knittl    14 年前

    [ ] {2,} 意思是“至少2次”

    所以,这段代码将一个空格的多个出现点替换为一个

    写(读)起来容易得多: " +" (一个或多个空格),然后用一个空格替换它们(毕竟不能慢)

        3
  •  2
  •   Oded    14 年前

    这条线:

    Regex regex = new Regex(@"[ ]{2,}", options);
    

    [ ] 创建一个包含空格的字符组-可以将其作为 ,但我猜那样的话可读性会降低。这个 {2,} 表示前一个字符(或字符组)的2个或多个(无界)。

    this NET正则表达式语法的简易正则表达式备忘单。

    此行将查找所有此类事件并用一个空格替换它们:

    string outStr = regex.Replace(inStr, @" ");
    

    replace函数在第一个字符串参数中查找正则表达式的所有匹配项,并用第二个字符串替换它们。

    在这两种情况下,都不需要逐字字符串文字(从 @ ).

        4
  •  2
  •   Damian Leszczyński - Vash    14 年前

    @-逐字字符串文字;这些字符直到下一个引号才被解释

    []-在此方括号中,我们指定是否允许使用字符。此([])任何空格作者可能只想使用替换空格,但为此应使用模式\s

    {2,}-至少两次

    可能这个正则表达式必须删除双空格