【问题标题】:Extracting major version from version in c#从 C# 中的版本中提取主要版本
【发布时间】:2014-01-28 04:43:40
【问题描述】:

我有一个类似

的字符串
myString = "some (numbers) \string \stringwithversion 12.3.45";

示例字符串

C:\Program Files (x86)\Product\Product Edition 12.3.45

我需要输出 12

想到了用空格分割字符串,再用空格分割结果,得到第一个;

myString.Split(' ').Last().Split('.').First();

而我已经看到了一些与正则表达式匹配和从组中获取的东西[我不明白]。

从这样的字符串中获取主要版本的最佳方法是什么?

【问题讨论】:

  • 你能给我们一个你将要解析的字符串的例子吗?

标签: c# regex split


【解决方案1】:

正则表达式:

[^0-9]*([^\.]*)\..*

解释:

  1. [^0-9]*:找到 0 个或多个不是数字的字符。全部丢弃。
  2. [^\.]*:找出 0 个或多个不是句点的字符。
  3. ([^\.]*):捕获这些字符(即,您可以将它们分配给一个变量,$1)。

(注意:我假设字符串中唯一的数字来自版本!)

代码:

string strRegex = @"[^0-9]*([^\.]*)\..*";
Regex myRegex = new Regex(strRegex, RegexOptions.Multiline);
string strTargetString = @"some (numbers) \string \stringwithversion 12.3.45" + "\n";
string strReplace = @"$1";

return myRegex.Replace(strTargetString, strReplace);

你可以测试一下here

【讨论】:

    猜你喜欢
    • 2013-09-22
    • 2018-12-09
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2017-04-22
    相关资源
    最近更新 更多