[英]Get value using regex from string KP{{seq:2}}
有关更多详细信息,请参见下面的示例,
前任 :
Demo{{seq:2}}
字符串Demo19
(其中 2 是数字的长度),那么我应该得到输出为19
Demo{{seq:3}}
Demo191
=> 输出: 191
Demo19Test1
图案的** Demo19Test{{seq:1}}
** =>输出: 1
(基于序列)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);
}
演示
如果我明白你想要什么,我认为这段代码可以帮助你:
// 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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.