C # Регулярное выражение для поиска аннотаций

#c# #regex #string

#c# #регулярное выражение #строка

Вопрос:

Итак, я удаляю строки типа [5] [12] в двух скобках с номером между usign C #. Мне было интересно, какое регулярное выражение C # использовать при выполнении этого. Я попробовал следующее:

 @"[[0-9]{1,4}]"
  

Я думал, это сработает, но это никак не поможет?

Комментарии:

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

2. Это мне очень помогло с регулярным выражением C #: mikesdotnetting.com/Article/46 /…

Ответ №1:

Определенно, это должно сработать, я протестировал следующее

         string str = "John[1234]is [2]a foo[944]l";
        string o = Regex.Replace(str, @"[[0-9] ]","");
        Console.WriteLine(o);
  

Ответ №2:

согласно инструменту регулярных выражений @ http://myregexp.com/signedJar.html , ваш reg ex хорош. Но я думаю, вам нужно удалить «@», поскольку вы используете escape-символ «» в качестве escape-символа.

Я только что написал и протестировал следующий код, и он отлично работает (на моей машине :))

      private static void RegexRemoveBracketedNumbers()
            {
                string testIt = @"[[0-9]{1,4}]";
                Console.WriteLine(testIt);
   // sure enough @Talljoe is right, this output as 
   //  [[0-9]{1,4}] without the @ it is an unrecognized escape sequence.. 
                Regex regex = new Regex(@"[[0-9]{1,4}]", RegexOptions.Singleline);
                string output = regex.Replace("[1] hello [2] world [a] how are you? [1234]", string.Empty);
                Console.WriteLine(output);
    // output = "hello world [a] how are you?"
    // as expected.
            }
  

при запуске из консольного приложения…

Комментарии:

1. Нет, ему нужен символ @, потому что он использует символ » (это escape-символ для регулярного выражения, а не C #).

Ответ №3:

Попробуй это:

     string test = "strings like [5] [12]";
Regex getBrackettedText = new System.Text.RegularExpressions.Regex(@"[d ] [d ]");
string[] values = getBrackettedText.Match(test).Value.Split();

Regex getNumber = new System.Text.RegularExpressions.Regex(@"d ");

foreach(string value in values)
{
    Console.WriteLine(int.Parse(getNumber.Match(value).Value));
}