簡體   English   中英

創建正則表達式以匹配帶有字母和后跟固定位數的字符串

[英]create regex to match a string with a letter followed by fixed number of digits

我們有一個用例之一,需要用以下約束來驗證一些Uid

長度為5的形式為annnn ,其中a是除ABDE以外A任何字母。 n09任何數字。

因此,我創建了一個新方法,該方法將驗證相同方法並按預期工作。

/// <summary>
/// Validate Uid of lenght 5 in form annnnn where ‘a’ is any letter other than A, B, D and E.
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
private static bool IsValidUid( string value )
{
    bool returnValue = false;

    if (string.IsNullOrEmpty(value) == false && value.Length == 5)
    {
        char firstChar = value[0];
        bool firstCharFailed = false;

        switch (firstChar)
        {
            case 'A':
            case 'B':
            case 'D':
            case 'E':
                firstCharFailed = true;
                break;
        }

        if (firstCharFailed == false)
        {
            string remainingStr = value.Substring(1, 4);

            int numb;

            if (int.TryParse(remainingStr, out numb) == true)
            {
                returnValue = true;
            }
        }
    }

    return returnValue;
}

但這可以通過正則表達式有效地完成。 由於我對它不好,因此需要幫助為我創建一個! 提前致謝!!

其中“ a”是除A,B,D和E以外的任何字母。

因此,在這種情況下,您需要指定允許的字母集

[a-zF-ZC] =>表示所有字母均在az和FZ范圍內,應同時匹配C

“ n”是從0到9的任何數字。

\\d與數字匹配,或者您可以使用[0-9]

長度為5的表格,格式為annnnn

\\d{4}指定應該匹配的前一個字符的數量

最后一件事必須要做。 您需要指定a應該在字符串的開頭,並且字符串在第5個字符之后結束:

^表示字符串的開頭
$表示字符串的結尾。

所以結合起來看起來像這樣:

string pattern = @"^[a-zF-ZC]\d{4}$

或使用數字范圍:

string pattern = @"^[a-zF-ZC][0-9]{4}$

這是正則表達式模式概述,並帶有示例和解釋

這是一個可以測試並試用正則表達式模式站點 弄弄它以了解它。 它有助於

編輯:

[...]表示一個字符集,這將被匹配。 范圍是使用表示-標志像azAF5-9 任何其他字符都可以簡單地放入集合中:

[abcdefgxyz]僅匹配指定的字母!

設置和范圍可以組合

[CF-SX-Z]將匹配CFS之間以及XZ之間的所有大寫字母。 我希望它現在變得更清楚

暫無
暫無

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

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