当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PowerShell 中从字符串中删除字符 [4 种方法]

作者:精品下载站 日期:2024-12-14 05:26:54 浏览:13 分类:玩电脑

在 PowerShell 中从字符串中删除字符 [4 种方法]


[玩转系统] 在 PowerShell 中从字符串中删除字符 [4 种方法]

在 PowerShell 中从字符串中删除字符

使用 Replace() 方法

使用 Replace() 方法从 PowerShell 中的字符串中删除字符。 Replace() 方法用字符串中的新字符替换旧字符。

使用 Replace() 方法:

$originalString = 'Java2blog'
$newString = $originalString.Replace('a', '')
Write-Host $newString 

输出 :

Jv2blog

对于上面的代码,我们使用 Replace() 方法将字符 a 替换为 empty space,最终从 String 中删除字符。 Replace() 方法有两个参数:

  • 首先是我们要替换的字符或字符串 - a
  • 第二个是我们想要替换它的字符或字符串 - 空字符串

使用 -replace 运算符

使用 -replace 运算符从 PowerShell 中的字符串中删除字符。

使用 -replace 运算符:

$originalString = 'Java2blog'
$newString1 = $originalString -replace 'a', ""
Write-Host $newString1

输出 :

jv2blog

在这里,我们使用了 -replace 运算符,类似于 Replace() 方法,它接受两个参数;第一个是我们想要匹配的正则表达式模式,第二个是替换字符串。现在替换字符串可以是任何内容;在上面的示例中,我们使用了一个字符 a 和一个空格。

注意: -replace 运算符的工作方式与 .Replace() 方法相同,我们在其中提供一个字符串来查找和替换。然而,-replace 运算符有一个显着的优点:它允许我们使用正则表达式 (regex) 搜索匹配的字符串,这是使用 .Replace 不可能实现的() 方法。

使用 Remove() 方法

使用 Remove() 方法从 PowerShell 中的指定字符串中删除字符。

使用Remove()方法:

$string = "Java2blog"
$string = $string.Remove(0,1) 
$string

输出 :

ava2blog

声明并初始化 $string 变量后,我们使用了 Remove() 方法,该方法返回一个新字符串,其中删除了给定数量的字符。该方法有两个参数;第一个是 startIndex,一个从零开始的位置(因为索引以 0 开头),用于删除字符。该参数表示我们要删除的字符的索引。第二个参数是count,表示要删除的字符数。

例如,我们使用 $string.Remove(0,1) 删除一个 J 字符(从 0th 索引开始)。我们还可以根据我们想要实现的目标将其与不同的参数一起使用。例如,$string.Remove(2,1) 只会删除索引 2 处的 v,因为第二个参数是 1 ,表示要删除的字符数。

我们可以使用 Remove() 方法的另一种变体,但对于不同的场景,我们想要获取一个新字符串,其中当前实例的所有字符(从给定位置开始到最后一个位置)都具有已被删除。我们通过下面的例子来学习一下。

使用Remove()方法:

$string = "Java2blog"
$string = $string.Remove(4) 
$string

输出 :

Java

Remove() 方法仅采用一个参数,即 startIndex,我们在上面已经了解过这一点。然后,它开始从给定位置 (startIndex)(在我们的例子中为 4)删除字符,直到最后一个位置,并将 Java 显示为一个输出。

注意:如果您想保存它以供将来使用,请不要忘记通过重新分配新值来更新 $string 变量,因为 Remove() 方法不会更新原始字符串。

-join 运算符与 -split 运算符结合使用

-join 运算符与 -split 运算符结合使用,可从 PowerShell 中的指定字符串中删除字符。

将 -join 与 -split 结合使用:

$string = "Java2blog"
$string = -join ($string -split "a")
$string

输出 :

jv2blog

在这里,我们使用 -join-split 运算符来操作 $string 变量。 -split 用于将 $string 拆分为子字符串数组。现在,在哪里分割$string?每当遇到 a 字符时,它就会分割字符串。执行分割后,我们得到两个子字符串,Jv以及2blog

我们在 $string -split "a" 周围使用 () 来创建所有子字符串的数组。我们可以使用 $string.GetType() 来交叉检查我们是否已成功获取字符串数组。请注意,该数组的任何元素中都不包含 a 字符。

将 -join 与 -split 结合使用:

$string = "Java2blog"
$string = -join ($string -split "a")
$string.GetType()

输出 :

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String[]                                 System.Array

接下来,我们使用 -join 运算符将使用 -split 运算符创建的所有数组元素连接成一个字符串。同样,生成的字符串也不会包含 a 字符。因此,在上面的示例中,它采用 $string 变量,在找到 a 的任何位置将其拆分,并将字符串数组的所有各个部分连接起来以创建一个新字符串,而无需h 字符。

到目前为止,我们已经学习了如何删除一个字符、一个字符的多个实例、指定字符串的最后一个字符,或者删除从给定位置开始的所有内容。但是,如果我们想保留字符串的一部分并删除该特定块之前和之后的所有内容,该怎么办?在这种情况下,我们可以使用 split() 方法。

删除两个字符之前和之后之间的字符串

我们可以使用 split() 方法删除前后两个字符。
下面的代码删除 = 之前和 , 之后的所有内容

使用 split() 方法:

$string ="This is some sample text =keep this,but remove anything else."
$string = $string.split('=')[1].split(',')[0]
$string

输出 :

keep this

split() 方法的作用与我们在上一节中与 -join 运算符一起使用的 -split 运算符相同。它根据给定的分隔字符(分隔符)将 $string 拆分为子字符串。在上面的示例中,我们使用 = 作为分隔符将 $string 拆分为子字符串数组,然后使用索引运算符 ([1]),然后,我们使用逗号 (,) 作为分隔符分割数组的第二个元素,并使用索引运算符获取新数组的第一个元素([0])。

所以最终的输出是数组的第一个元素,它是通过拆分数组的第二个元素获得的,而数组的第二个元素是通过使用 = 作为拆分 $string 变量来获得的分隔符和 , 分别作为分隔符。

在 PowerShell 中删除字符串的最后一个字符

如果我们只想删除 $string 的最后一个字符怎么办?在这种情况下,我们可以使用 $string 变量的 .Length 属性,如下所示。

使用Remove()方法:

$string = "Mehvish"
$length = $string.Length
$length = $length - 1
$string = $string.Remove($length,1) 
$string

输出 :

Mehvis

这里,我们使用.Length属性来获取$string变量包含的值的大小,即9,并将其保存在 $length 变量中。然后,为了获取最后一个字符的索引,我们从 $length 中减去 1,因为索引从 0 开始,这会放入最后一个字符在 length-1 处。现在,我们将 $length1 作为 count 传递给 Remove() 方法来删除最后一个字符,即上述代码中索引 8 处的 g

这就是如何在 PowerShell 中从字符串中删除字符。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯