问题描述
我想检查一个字符串是否包含一个数值.我有这个代码:
I want to check if a string contains a numeric value. I have this code :
$string = "some string that contains 123456 in the middle"
$substring = $string.substring(27,9).Trim()
我有 $substring 它将包含123456",我在这里找到了这个 IsNumeric 函数:在 PowerShell 中,我怎样才能测试变量是否包含数值?
I have $substring which will be containing "123456" and I found this IsNumeric function here :In PowerShell, how can I test if a variable holds a numeric value?
问题是,当我从 $string 中提取它时,它的行为类似于字符串类型,而 IsNumeric 返回 false,因为它将它与所有数字类型进行比较.即使很难,它也会包含一个数字,IsNumeric 的输出将是假的.
The thing is that this when I'm extracting it from $string it acts like string type and IsNumeric returns false since it's comparing it to the all numeric types. and even tough it will contain a number the output of IsNumeric will be false.
有没有更好的方法来检查字符串是否包含数值?
Is there a better way to check if string contains numeric values?
推荐答案
可以使用正则表达式匹配来测试:
You can use a regular expression match to test it:
if($substring -match "^\d+$")
{
# Do something
}
这应该适用于任何只包含数字的字符串(即正整数).如果要包含负整数,请将模式更改为 ^-?\d+$
.
This should work for any string which contains only digits (i.e. is a positive integer). Change the pattern to ^-?\d+$
if you want to include negative integers.
这篇关于在 PowerShell 中检查字符串是否包含数值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!