如何从字符串中提取整数值
How to extract integer values from inside a string
我 运行 PowerShell 命令使用 C# 获取总 RAM 容量,它 returns 这个值。 @{TotalPhysicalMemory= 17856325}
。我写了一段代码来获取唯一的整数值。这是代码。
string ramSize = "@{TotalPhysicalMemory= 17856325}";
string ramValue = ramSize.Split('=')[1].Split('}')[0].Trim().ToString();
此代码returns整数值。但是我想知道有什么方法可以很容易地得到这个整数值吗?
您可以使用 Regex 来获取值。
First capturing group
\d
matches a digit (equivalent to [0-9]) and
+
matches the previous token between one and unlimited times
因此,match.Groups[1].Value
将从组 (\d+)
中获取值,如上所述。
using System.Text.RegularExpression;
string ramSize = "@{TotalPhysicalMemory= 17856325}";
Regex regex = new Regex(@"^\@{TotalPhysicalMemory= (\d+)}");
var match = regex.Match(str);
var ramValue = match.Groups[1].Value;
Console.WriteLine("Value: " + ramValue);
输出
Value: 17856325
提取字符串中数字的简单正则表达式即可。
var ram = new Regex(@"\d+").Match(ramSize).Value;
也可以加上System.Management,直接通过
获取尺寸
var ram =
new ManagementObjectSearcher("root\CIMV2",
"SELECT TotalPhysicalMemory FROM Win32_ComputerSystem")
.Get().OfType<ManagementObject>().First()
.Properties.OfType<PropertyData>().First().Value;
要仅获取字符串中的第一个数字,您可以轻松地执行此操作:
using System.Text.RegularExpressions
string ramValue = Regex.Match(ramSize, @"\d+").Value;
要获取字符串中的所有数字,您可以使用 Linq:
using System.Linq
string ramValue = ramSize.Where(Char.IsDigit).ToArray()
也可以看这里:
Find and extract a number from a string
我 运行 PowerShell 命令使用 C# 获取总 RAM 容量,它 returns 这个值。 @{TotalPhysicalMemory= 17856325}
。我写了一段代码来获取唯一的整数值。这是代码。
string ramSize = "@{TotalPhysicalMemory= 17856325}";
string ramValue = ramSize.Split('=')[1].Split('}')[0].Trim().ToString();
此代码returns整数值。但是我想知道有什么方法可以很容易地得到这个整数值吗?
您可以使用 Regex 来获取值。
First capturing group
\d
matches a digit (equivalent to [0-9]) and+
matches the previous token between one and unlimited times
因此,match.Groups[1].Value
将从组 (\d+)
中获取值,如上所述。
using System.Text.RegularExpression;
string ramSize = "@{TotalPhysicalMemory= 17856325}";
Regex regex = new Regex(@"^\@{TotalPhysicalMemory= (\d+)}");
var match = regex.Match(str);
var ramValue = match.Groups[1].Value;
Console.WriteLine("Value: " + ramValue);
输出
Value: 17856325
提取字符串中数字的简单正则表达式即可。
var ram = new Regex(@"\d+").Match(ramSize).Value;
也可以加上System.Management,直接通过
获取尺寸 var ram =
new ManagementObjectSearcher("root\CIMV2",
"SELECT TotalPhysicalMemory FROM Win32_ComputerSystem")
.Get().OfType<ManagementObject>().First()
.Properties.OfType<PropertyData>().First().Value;
要仅获取字符串中的第一个数字,您可以轻松地执行此操作:
using System.Text.RegularExpressions
string ramValue = Regex.Match(ramSize, @"\d+").Value;
要获取字符串中的所有数字,您可以使用 Linq:
using System.Linq
string ramValue = ramSize.Where(Char.IsDigit).ToArray()
也可以看这里:
Find and extract a number from a string