删除 PowerShell 中某个字符串之前出现的所有字符

删除 PowerShell 中某个字符串之前出现的所有字符

我有一个包含以下信息的文本文件:

24.;128.32.;128,6;0.128.68.;128,1.;0.76.;;;;;0,1.;0.4.;0,2.;0.5.;0,4.;;;0.76.;128,;;;;;;;;172.30.1.1,172.30.1.228,

我需要删除 之前出现的所有字符172.30.1.1。对于我的文件,它看起来像这样:

172.16.1.1,172.16.1.210,

我正在使用 Poweshell 来执行此操作,但没有成功。

答案1

这在很大程度上取决于你的数据一致性。方法有很多种。你可以用 split 来实现:

$test = '24.;128.32.;128,6;0.128.68.;128,1.;0.76.;;;;;0,1.;0.4.;0,2.;0.5.;0,4.;;;0.76.;128,;;;;;;;;172.30.1.1,172.30.1.228,'
$partIWant = $test.Split(';')[$($test.Split(';').Count-1)]
$partIWant

您也可以使用正则表达式:

$partIWant = $test -replace '.+(\d+.\d+\.\d+\.\d+\.\d+,\d+\.\d+\.\d+\.\d+,)', '$1'
$partIWant

您需要选择想要使用的方法,并根据要处理的特定数据进行设计。

相关内容