0

我有一个单词数组,我想删除与模式匹配的任何单词,并删除每个长度小于 3 个字符的单词。以下代码是否能够完成我的想法?提前致谢。

           foreach (Match mtch in mc )

           {
               string p = @"[A-Z,a-z,0-9]" ;

               if (Regex.IsMatch(mtch.Value, p)  || mtch.Length < 3 )
                {
                   continue;
                }
              else
              {
               filter.Add(mtch.Value);
              }
           }

因为我真的对使用 || 感到困惑 操作员。

4

3 回答 3

3

|| (OR 运算符)以下列方式工作。如果条件 1 返回真,条件 2 返回假,则整体结果为真。

true || true = true

true || false = true

false || true = true

flase || false = false

在你的情况下:

  if (Regex.IsMatch(mtch.Value, p)  || mtch.Length < 3 )

它正在检查 mtch 的值是否与 RegEx 匹配或 mtch 的长度小于 3,然后继续循环执行。现在这里有两个条件,如果两个条件的结果都为假,这只会转到 if 语句的 else 部分。即 mtch 的值与正则表达式 p 不匹配并且值 mtch 长度大于或等于 3

于 2012-05-03T11:53:13.533 回答
1

条件或运算符 (||) 对其布尔操作数执行逻辑或。如果第一个操作数的计算结果为真,则不计算第二个操作数。如果第一个操作数的计算结果为 false,则第二个运算符确定整个 OR 表达式的计算结果为 true 还是 false。

|| 操作员

于 2012-05-03T11:49:02.127 回答
0

|| 运算符执行逻辑或。

它将首先评估左操作数,如果为真,则表达式为真。如果左操作数为假,则计算第二个操作数。

如果您将以下示例作为控制台应用程序运行,您将看到会发生什么:

using System;

namespace OrOperand
{
    class Program
    {
        static void Main(string[] args)
        {
            DisplayResult(true, true);
            DisplayResult(true, false);
            DisplayResult(false, true);
            DisplayResult(false, false);
        }

        private static void DisplayResult(bool left, bool right)
        {
            _left = left;
            _right = right;

            Console.WriteLine("Running " + left + " || " + right);

            if (Left() || Right())
            {
                Console.WriteLine(_left + " || " + _right + " is true");
            }
            else
            {
                Console.WriteLine(_left + " || " + _right + " is false");
            }
        }

        static bool _left = true;
        static bool _right = false;

        static bool Left()
        {
            Console.WriteLine("Left called");
            return _left;
        }

        static bool Right()
        {
            Console.WriteLine("Right called");
            return _right;
        }

    }
}

这将输出:

Running True || True
Left called
True || True is true
Running True || False
Left called
True || False is true
Running False || True
Left called
Right called
False || True is true
Running False || False
Left called
Right called
False || False is false
于 2012-05-03T11:52:16.527 回答