从powershell字符串中提取整数

时间:2018-06-18 16:23:28

标签: regex powershell

我需要从字符串中提取一个数字,数字会一直在变化,所以不能只是硬编码,例如:

some random amount of text 54321 more text and another number 123

我知道我可以使用类似的东西:

'john123456smith' -replace "[^0-9]" , ''

但这给了我54321123这不是我想要的,我只想要54321

关于正则表达式的任何想法都会这样做吗?

2 个答案:

答案 0 :(得分:1)

嗯,根据您的描述,这应该有效:

$test = 'asdfasdfasdfadf54321asdfasdfasdf123'
$test -match '[^0-9]+([0-9]+)'
$matches[1]

答案 1 :(得分:1)

如果您知道该号码应该有的地方数量(此处为5)

$String = "john123456smith"
If ($String -match '^\D*(\d{5}).*$') {
    "Foud number {0}" -f $Matches[1]
} else {
    "no number with 5 places found"
}

示例输出:

Foud number 12345