簡體   English   中英

我如何檢查一個字符串包含一個字母空格字母空格和另一個字母 C#

[英]How can i check of a string contains a letter space letter space and anotherl letter C#

我需要幫助來檢查字符串是否包含這樣的單詞: PIETSNOT 。 通訊

當我有這樣的時候,我不希望它說真的:“嗨,我的名字是”等等,只有當它是 1 個字母空格 1 個字母並且在一個字符串中出現 3 次或更多時。 這是我的游戲的banfilter。 我不希望那個人可以說嗨來參加我的游戲 HIHIHI。 通訊

我想不通,因為我不想為 1 個單詞添加所有組合。

嚴格按照您的要求,所有不是字母后跟空格的內容並重復序列直到字符串結束

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

這應該可以解決問題:

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

這將告訴您text中的所有其他字符是否都是空格:

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

如果您需要它匹配比大寫字母和點更多的字母,您應該將兩個 [AZ.] 擴展為例如 [A-Za-z0-9.,-_]。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM