Как проверить, построена ли строка, используя только определенные символы - PullRequest
0 голосов
/ 21 декабря 2011

Мне нужно проверить, строится ли строка только с использованием 1, 0 и запятой. Он также должен начинаться с 0 или 1, а также заканчиваться 0 или 1:

Проверка начала и конца может быть выполнена следующим образом (или, если вы думаете, что это может быть улучшено, дайте мне знать!)

if ((text.StartsWith("0") || text.StartsWith("1")) //Starts with 0 or 1
    && (text.EndsWith("0") || text.EndsWith("1")) //Ends with 0 or 1
    && //How to check if it only has 0, 1 and comma?            )
{
    //Do Something!
}

Ответы [ 6 ]

4 голосов
/ 21 декабря 2011

Вы можете использовать Regex, попробуйте это:

if (new Regex("^[01][01,]*[01]$").Match(text).Success)
{
   // do your stuffs
}
1 голос
/ 21 декабря 2011
public bool CheckMyString(string text)
{
    if ((text.StartsWith("0") || text.StartsWith("1")) 
       && (text.EndsWith("0") || text.EndsWith("1")))
    {
      foreach (char c in text)
      {
         if (c != "1" && c != "0" && c != ",")
         {
            return false;
         }
      }
    }
    else
    {
       return false;
    }

    return true;
}
0 голосов
/ 21 декабря 2011

Вы можете попробовать это,

System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("[01][01,]+?[01]");
if (!reg.IsMatch("3452"))
{
    Response.Write("Does Not Match");
}

if (reg.IsMatch("01111,1"))
{
    Response.Write("Yes Match!");
}
0 голосов
/ 21 декабря 2011

Это один путь?

if (value.Trim("01,".ToCharArray()).Length == 0 )
0 голосов
/ 21 декабря 2011
if (Regex.IsMatch("0101,1010", "^[01][01,]*[01]$"))
{
     doSomething();
}

вам нужно добавить

using System.Text.RegularExpressions;

в начало вашего файла, чтобы это работало.

0 голосов
/ 21 декабря 2011

Используйте регулярное выражение, подобное этому [01] [01,] +? [01]. Я уверен, что могли бы быть лучшие образцы регулярных выражений для использования. Но это сработало бы.

if(Regex.IsMatch(mystring, "[01][01,]+?[01]"))
   //yes it matches;

Этот шаблон регулярного выражения будет искать 0 или 1, а затем необязательную последовательность 0, 1 или ",", а затем снова заканчиваться 0 или 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...