我需要从字符串中提取一个数字,数字会一直在变化,所以不能只是硬编码,例如:
some random amount of text 54321 more text and another number 123
我知道我可以使用类似的东西:
'john123456smith' -replace "[^0-9]" , ''
但这给了我54321123
这不是我想要的,我只想要54321
。
关于正则表达式的任何想法都会这样做吗?
答案 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