Регулярное выражение C # для поиска аннотаций - PullRequest
3 голосов
/ 23 апреля 2011

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

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

Я думал, что это будет работать, но это не поможет?

Ответы [ 3 ]

0 голосов
/ 23 апреля 2011

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

    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));
}
0 голосов
/ 23 апреля 2011

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

        string str = "John[1234]is [2]a foo[944]l";
        string o = Regex.Replace(str, @"\[[0-9]+\]","");
        Console.WriteLine(o);
0 голосов
/ 23 апреля 2011

в соответствии с инструментом регулярных выражений @ http://myregexp.com/signedJar.html, Ваш регистр хорош.Но я думаю, что вам нужно удалить «@», так как вы используете 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.
            }

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

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