繁体   English   中英

使用正则表达式从字符串 KP{{seq:2}} 获取值

[英]Get value using regex from string KP{{seq:2}}

有关更多详细信息,请参见下面的示例,

前任 :

  1. 如果我有模式Demo{{seq:2}}字符串Demo19 (其中 2 是数字的长度),那么我应该得到输出为19
  2. 模式Demo{{seq:3}} Demo191 => 输出: 191
  3. Demo19Test1图案的** Demo19Test{{seq:1}} ** =>输出: 1 (基于序列)
  4. Demo19KPTest1Demo of pattern** Demo19KPTest{{seq:1}}Demo ** => 输出: 1 (基于序列)

演示、测试、KP 只是字符串

就像下面的模式一样简单

(?<=KP)\d+\b

阅读本文的方法

  • (?<=subpattern)零宽度正后视断言。 仅当左侧的子模式匹配时才继续匹配

  • \\d匹配任何十进制数字。

  • +匹配前一个元素一次或多次。

  • \\b减少回溯。

例子

var regex = new Regex(@"(?<=KP)\d+\b", RegexOptions.IgnoreCase);
var match = regex.Match(input);

if (match.Success)
{
   Console.WriteLine(match.Value);
}

演示

https://regex101.com/r/879sPF/1

如果我明白你想要什么,我认为这段代码可以帮助你:

// This means you want to find `KP` followed by a fixed sequence of numbers
var pattern = @"KP(\d{" + seq + "})"; 
var result = Regex
            .Matches(txt, pattern)
            .OfType<Match>()
            .Select(c => int.Parse(c.Groups[1].Value))
            .ToList();

[ C# 演示 ]
或者

var result = Regex
            .Matches(txt, @"KP(\d+)")
            .OfType<Match>()
            .ToList()[seq - 1]
            .Groups[1].Value;

[ C# 演示 ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM