[UWP] How to check if string equals to "_n_"

BitSmithy 1,956 Reputation points


How to check if string equals to expresion showed in post title, where n is number (1,2,3,4,5,6, etc).

Note, I dont want chceck if string contains such expresion, I need to konow if the string exactly equals to expresion.

Universal Windows Platform (UWP)
{count} votes

Accepted answer
  1. Richard Zhang-MSFT 6,936 Reputation points


    Welcome to our Microsoft Q&A platform!

    According to your needs, you want the string to be tested to fully conform to the form _n_, with no extra strings before and after. This situation can be solved using regular expressions:

    var regex = new Regex(@"^_\d+_$");
    // do something


    May I know the language you are using? I implemented it using C#.

    Regular expressions have a large overhead on system resources. If there are no special requirements, you can consider this method:

    public bool IsMatchNeeds(string inputString)
        if (inputString.Length < 3)
            return false;
        bool isFirst = inputString.First().Equals("_");
        bool isLast = inputString.Last().Equals("_");
        if (isFirst && isLast)
            string numberString = inputString.Replace("_", "");
            bool isNumber = int.TryParse(numberString, out int num);
            return isNumber;
        return false;


        // do something...

    There are several ways to check if a string is a number. In addition to the regular expressions mentioned earlier, there are the following methods:

    1. Enumerable.All

    bool isNumber = numberString.All(p => char.IsDigit(p));

    2. Enumerable.Any

    bool isNumber = !numberString.Any(p => p < '0' || p > '9');

    3. int.TryParse

    bool isNumber = int.TryParse(numberString, out int number);

    4. for-each loop

    bool isNumber = true;
    foreach (var p in numberString)
        if (p < '0' || p > '9')
            isNumber = false;


    0 comments No comments

0 additional answers

Sort by: Most helpful