使用 Powershell 删除字符串中的空格

问题描述 投票:0回答:2

我遇到一个问题,从数据库中提取数据有时(经常)会在不应该存在的文本字符串之间添加空格。

我想做的是创建一个小脚本来查看这些字符串并删除空格。

问题是空格可以出现在字符串中的任何位置,而字符串是一个会变化的变量。

示例:

"StaffID": "0000 25"
<- The space in the number should not be there. Is there a way to have the script look at this particular line, and if it finds spaces, to remove them.
或者:
"DateOfBirth": "23-10-199 0"
<-It would also need to look at these spaces and remove them.

问题是相同的数据也有如下行:

"Address": " 91 Broad street"
<- The spaces should be here obviously.

我尝试过使用 TRIM,但这只会删除开头/结尾的空格。

值得一提的是,提取的数据是json格式,然后使用API导入到新系统中。

powershell spaces stripping
2个回答
2
投票

您应该考虑您想要执行的操作的逻辑,以及是否可以通过编程来确定您是否可以教您的脚本在哪里适合或不适合放置空格。事实上,这是人工智能研究目前面临的最大问题之一,因此不幸的是,您可能必须手动完成此操作。

如果是我,我会指定我期望从每一列中获得的数据格式,并尽力尝试解析这些字符串。例如,如果您知道 StaffID 不包含空格,您可以制定一条仅删除它们的规则:

$staffid = $staffid.replace("\s+",'')

您可以使用强制格式化(.replace)执行一些更复杂的操作,这些操作已经在本答案中中进行了介绍,但同样,这需要对将从哪列中输出的数据进行一定的预期。

您可能想更仔细地查看这些空间的来源,而不是像这样处理输出。检索脚本正在执行此操作吗?也许您可以优化您从中提取的数据库?


0
投票

现在,您使用:

# "some spaces here" -replace (' ')
somespaceshere
© www.soinside.com 2019 - 2024. All rights reserved.