簡體   English   中英

使用Regex提取版本信息

[英]Extracting version information using Regex

我需要從以下字符串中提取版本信息

993-756-V01 ver 02a

我需要使用什么正則表達式才能從993-756-V 01 ver 02 a中提取0102

我嘗試使用以下正則表達式提取版本子字符串,即V01 ver 02a

[A-Z][0-9]{2} ver [0-9]{2}

但是有沒有更直接的方法來提取信息

您可以使用帶有命名捕獲組的正則表達式來捕獲所需的信息。 請參見以下代碼:

var s = "993-756-V01 ver 02a";
var result = Regex.Match(s, @"(?<major>[0-9]+)\s+ver\s+(?<minor>[0-9]+)");
if (result.Success)
{
    Console.WriteLine("Major: {0}\nMinor: {1}", 
        result.Groups["major"].Value, result.Groups["minor"].Value);
}

參見C#演示

圖案細節

  • (?<major>[0-9]+) -組“ major”捕獲1個以上的數字
  • \\s+ -1+空格
  • ver\\s+ ver子字符串,然后是1+空格
  • (?<minor>[0-9]+) -組“ minor”捕獲1個以上的數字

我看到的另一種可能性是使用以下模式:

V(\d+)\D+(\d+)

這里:

V     = Literal `V` capital alphabet.
(\d+) = Captures any digit from 0-9 following `V` character. 
\D+   = Anything except digit next to digits. (A way to find the next numeric part of your version number)
(\d+) = Captures any digit from 0-9 following non-digit characters.

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM