string - 使用 PowerShell 4.0 从变量输入中删除空格

标签 string powershell variables spaces stripping

我已经尝试了一些方法,但由于某种原因它们似乎不起作用。

基本上我想做的是让用户使用 “Read-host”cmdlet,然后去掉其中的所有空格。

我尝试过:

$answer = read-host
$answer.replace(' ' , '""')

还有:

$answer = read-host
$answer -replace (' ')

我可能错过了一些非常明显的东西,但如果有人可以帮助我或向我展示一种更简单的方法来实现这一目标,我将不胜感激。

我打算将变量通过管道传输到命令并以这种方式剥离它,但我见过的所有示例都不起作用,尽管它们看起来更容易。

最佳答案

Replace 运算符的意思是用其他内容替换某些内容;不要与删除功能混淆。

此外,您还应该将运算符处理的结果发送到变量或另一个运算符。 .Replace()-replace 都不会修改原始变量。

要删除所有空格,请使用“用空字符串替换任何空格符号

$string = $string -replace '\s',''

要删除行首和行尾的所有空格,并将所有双倍及以上空格或制表符替换为空格键符号,请使用

$string = $string -replace '(^\s+|\s+$)','' -replace '\s+',' '

或更原生的System.String方法

$string = $string.Trim()

首选正则表达式,因为' '仅表示“空格键”符号,而'\s'表示“空格键、制表符和其他空格符号”。请注意,$string.Replace() 执行“正常”替换,而 $string -replace 执行 RegEx 替换,后者更重,但功能更强大。

请注意,RegEx 有一些特殊符号,例如点 (.)、大括号 ([]())、斜线 (\)、帽子 (^)、数学符号 (+-) 或美元符号 ($) 需要转义。 ( 'my.space.com' -replace '\.','-' => 'my-space-com'。带有数字的美元符号(例如$1) 必须小心使用在正确的部分

'2033' -replace '(\d+)',$( 'Data: $1')
Data: 2033

更新:您还可以使用 $str = $str.Trim() 以及 TrimEnd()TrimStart()。欲了解更多信息,请访问 System.String MSDN 页面。

关于string - 使用 PowerShell 4.0 从变量输入中删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24355760/

相关文章:

java - String.split() 不适用于 "[]"

java - 如何使用通配符搜索字符串数组

Powershell文本处理: Join specific lines of a txt file

c - 如何在 C 中通过引用传递变量?

javascript - 如何将变量从函数传递到 react 中的渲染函数

r - 将不均匀出现的以逗号分隔的字符串拆分为列并填充缺失值

php - 防止 PHP 解释源代码中字符串中的新行

python - 在不打开单独的 shell 的情况下运行 python 程序

windows - 以编程方式启用 Powershell 是否可以接受?

java - 在Java中,为什么有的变量需要先初始化,有的只需要声明?