从字符串中提取版本号(例如:“版本1.9.0") [英] Extract version number from string(eg : "ver.1.9.0")

查看:78
本文介绍了从字符串中提取版本号(例如:“版本1.9.0")的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我传递一个字符串(verstring =="vername.1.19.5"),它将返回该版本,因为我忽略了Currentver [0].如果我想通过verstring =="1.19.5".

if i pass a string (verstring == "vername.1.19.5") it will return the version because i am ignoring Currentver[0]. if i want to pass verstring == "1.19.5".

我的意思是我将同时获得两种格式的字符串,即版本名称(vername)或仅版本(1.19.5)

I mean i will get verstring in both formats with version name(vername) or only version(1.19.5)

    public VerInfo(string verString)
    {
        string[] currentVer;

        if (versionString.Contains("."))
            currentVer= versionString.Split(".".ToCharArray());
        else
            currentVer= versionString.Split(":".ToCharArray());

        a= Convert.ToByte(currentVer[1]);
        b= Convert.ToByte(currentVer[2]);
        c= Convert.ToByte(currentVer[3]);
    }

推荐答案

如果您开放使用 Regex ,以下答案可能会为您提供帮助:

If you are opened to use Regex, the answer below might help you:

var regexPattern = @"(?:ver\:)?(?<major>\d)[\.|\:](?<minor>\d)[\.|\:](?<revision>\d)";
var regex = new Regex(regexPattern);

var match = regex.Match("1:2.3");
var major = Convert.ToByte(match.Groups["major"].Value);
var minor = Convert.ToByte(match.Groups["minor"].Value);
var revision = Convert.ToByte(match.Groups["revision"].Value);

它使用正则表达式命名的组来检索值版本.如果愿意,您可以通过a,b,c来将组名更改为正则表达式的一部分,这样您将获得以下信息:

It uses regex named groups in order to retrieve the value versions. You can change the group name as part of the regex by a,b,c if you prefer and you would get something like this:

var regexPattern = @"(?:ver\:)?(?<a>\d)[\.|\:](?<b>\d)[\.|\:](?<c>\d)";
var regex = new Regex(regexPattern);

var match = regex.Match("1:2.3");
var a = Convert.ToByte(match.Groups["a"].Value);
var b = Convert.ToByte(match.Groups["b"].Value);
var c = Convert.ToByte(match.Groups["c"].Value);

这篇关于从字符串中提取版本号(例如:“版本1.9.0")的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆