C# 如何检查包含一个字母空格和另一个字母C的字符串#

C# 如何检查包含一个字母空格和另一个字母C的字符串#,c#,game-engine,C#,Game Engine,我需要帮助来检查字符串是否包含像:pietsnot这样的单词。科尔姆 我不想让它在我这样说的时候说真的:“嗨,我的名字是”等等。, 仅当它是1个字母空格1个字母,并且在字符串中是3倍或更多。这是给我游戏的banfilter的。 我不想让人们说嗨来参加我的比赛。科尔姆 我无法理解,因为我不想添加一个单词的所有组合。严格按照您的要求,所有不是字母后跟空格的内容,重复序列直到字符串结束 string word = "Hello, my name is f i s h b i s c u i t s";

我需要帮助来检查字符串是否包含像:pietsnot这样的单词。科尔姆

我不想让它在我这样说的时候说真的:“嗨,我的名字是”等等。, 仅当它是1个字母空格1个字母,并且在字符串中是3倍或更多。这是给我游戏的banfilter的。 我不想让人们说嗨来参加我的比赛。科尔姆


我无法理解,因为我不想添加一个单词的所有组合。

严格按照您的要求,所有不是字母后跟空格的内容,重复序列直到字符串结束

string word = "Hello, my name is f i s h b i s c u i t s";

if (word.Replace(" ", "").Contains("fishbiscuits"))
{
 // code here
}
void Main()
{
    string test = "P I E T S N O T . C O M";
    Console.WriteLine(CheckSpaceLetterSequence(test));
    test = "Hi my name is";
    Console.WriteLine(CheckSpaceLetterSequence(test));
}


bool CheckSpaceLetterSequence(string test)
{
    int count = 0;
    bool isSpace = (test[0] == ' ');
    for(int x = 1; x < test.ToCharArray().Length; x++)
    {
        bool curSpace = (test[x] == ' ');
        if(curSpace == isSpace)
            return false;

        isSpace = !isSpace;
        count++;
        if(count == 3)
           break;
    }
    return true;
}
void Main()
{
字符串测试=“P I E T S N O T.C O M”;
控制台写入线(检查空格字母顺序(测试));
test=“你好,我的名字是”;
控制台写入线(检查空格字母顺序(测试));
}
bool CheckSpaceLetterSequence(字符串测试)
{
整数计数=0;
bool-isSpace=(测试[0]='');
对于(int x=1;x
这应该可以做到:

bool allLetterSpace = text.Trim().Length >= 6 && text.Trim()
   .Select((c, i) => new { IsWhiteSpace= Char.IsWhiteSpace(c), Index = i })
   .All(x => x.Index % 2 == 1 ? x.IsWhiteSpace : !x.IsWhiteSpace);

这将告诉您
文本
中的每一个字符是否都是空格:

bool spaced = text.Select((c,i) => (c == ' ') == (i % 2 == 1)).All(b => b);

正则表达式解决方案可能如下所示:

Regex regex = new Regex(@"(?<name>(?:[A-Z.] ){2,}[A-Z.])");
Match m = regex.Match("P I E T S N O T . C O M");
if (m.Success)
    MessageDlg.Show("Name is " + m.Groups["name"].Value);
else
    MessageDlg.Show("No name found");
Regex Regex=newregex(@“(?(?:[A-Z.]){2,}[A-Z.]);
Match m=正则表达式匹配(“P I T S N O T.C O m”);
如果(m.成功)
MessageDlg.Show(“名称为”+m.Groups[“名称”].Value);
其他的
MessageDlg.Show(“未找到名称”);

如果你需要匹配更多的字母,而不是大写字母和圆点,你应该将这两个[A-Z.]扩展到例如[A-Za-z0-9.-。

我认为这个问题是完全正确的…你能展示你尝试过的内容并解释什么不起作用吗?展示示例输入和预期输出以使其更清楚。我已经编辑了你的问题,但经过再三考虑,我可能误解了,所以我恢复了编辑。如果它毕竟是正确的,请重新应用编辑。不,我不希望这是P i T S N T。这对你好,我的名字叫Fishcookies,有什么用?此外,contains不会编译。是的,它不符合要求-“只有当它是1个字母空格1个字母,并且字符串中包含3次或更多”我同意它不符合要求,但这听起来像是一个错误的要求,所以我提供了我的解决方案,作为解决一般问题的一种方法。这个答案没有解释它是如何解决问题的。这是一个代码块。我还可以检查它是否包含字母空格字母空格。。。因为你现在需要添加所有必须被禁止的单词。。