Regex, строка 4 или 5 цифр между "\" и "\" - PullRequest
4 голосов
/ 09 сентября 2010

Мне нужно построить регулярное выражение.строка, которую я хочу сопоставить, всегда начинается с \, затем с 4 или 5 цифрами, а затем с другой \

Например.

  1. Welcome Home <\ 217.163.24.49 \ 7778 \ False, </li>
  2. Euro Server \ 217.163.26.20 \ 7778 \ False,
  3. Instagib!) \ 85.236.100.115 \ 8278 \ False,

в первом примере мне нужно "7778",Во втором примере мне нужно "7778".В третьем примере мне нужно «8278».

эти 4-значные числа на самом деле являются номерами портов, и это единственный раз, когда в каждой строке появляется эта серия символов (например, \ 7778 \).иногда номер порта составляет 4 цифры, иногда его 5.

Я уже знаю, как сохранить строку для последующего использования, используя Regex.Match.Success, это просто фактический шаблон регулярных выражений, который я ищу здесь.

спасибо

Ответы [ 5 ]

6 голосов
/ 09 сентября 2010
var match=Regex.Match(@"\1234\",@"\\(?<num>\d{4,5})\\"); 


if(match.Success)
{
    var numString=match.Groups["num"].Value;
}

или (если вам не нравится использование групп) вы можете использовать утверждения lookbehind и lookahead, чтобы убедиться, что ваше 4-5-значное совпадение окружено косыми чертами:

var match=Regex.Match(@"\1234\",@"(?<=\\)\d{4,5}(?=\\)");
if(match.Success)
{
    var numString=match.Value;
}
3 голосов
/ 09 сентября 2010
@"\\(\d{4,5})\\"

\\ для сопоставления с обратной косой чертой, \d для сопоставления цифр, {4,5} для "4 до 5".Скобки вокруг \d{4,5} позволяют получить доступ к нумерации с помощью .Groups[1].

1 голос
/ 09 сентября 2010

Я разработал простой инструмент для проверки регулярных выражений на примере строк; это допустимая строка для ваших образцов в C #, однако она не является «строгой»!

(?<name>.+?)\\(?<ip>[0-9.]+)\\(?<port>[0-9]{4,5})\\(?<boolean>[False|True]+)

1 голос
/ 09 сентября 2010

Попробуйте (\\[\d]{4,5}\\)

0 голосов
/ 09 сентября 2010
\\[0-9]{4,5}\\

\ Он должен начинаться с \ (еще один \ должен сбежать)
[0-9] Это может быть любое число, указанное в наборе (0,1,2,3 ... 9)
{4,5} предыдущий набор может появляться от 4 до 5 раз
\ Он должен заканчиваться на \ (еще один \ должен убежать)

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