簡體   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