正则表达式,匹配"\"和"\"之间长4或5位的字符串

bru*_*rux 4 c# regex

我需要建立一个正则表达式.我要匹配的字符串始终以\然后4或5个数字开头,然后是另一个\

例如.

  1. 欢迎回家<\ 217.163.24.49\7778 \错误,
  2. Euro Server\217.163.26.20\7778\False,
  3. Instagib!)\ 85.236.100.115\8278 \假,

在第一个例子中,我需要"7778".在第二个例子中,我需要"7778".在第三个例子中,我需要"8278".

这4位数字实际上是一个端口号,它是每一行上唯一出现这一系列字符(例如\ 7778 \)的时间.有时端口号是4位数,有时是5位.

我已经知道如何使用Regex.Match.Success保留字符串供以后使用,它只是我在这里寻找的实际正则表达式模式.

谢谢

spe*_*der 6

var match=Regex.Match(@"\1234\",@"\\(?<num>\d{4,5})\\"); 


if(match.Success)
{
    var numString=match.Groups["num"].Value;
}
Run Code Online (Sandbox Code Playgroud)

或者(如果你不喜欢使用组)你可以使用lookbehind和lookahead断言来确保你的4-5位数匹配被斜线包围:

var match=Regex.Match(@"\1234\",@"(?<=\\)\d{4,5}(?=\\)");
if(match.Success)
{
    var numString=match.Value;
}
Run Code Online (Sandbox Code Playgroud)