首页 > 解决方案 > 要排除 % 的 Powershell 模式

问题描述

我正在尝试找到一种模式来从文本中删除 % 。这可以通过 ESCAPE 或 replace 轻松实现,但我仅限于修改 $pattern 的内容。

$text = "something is 5% and 10% value"
$pattern = "[^!%]*" // only this can be modified.
([Regex]::Match($text,$pattern)).value

输出应该是:

某物是 5 和 10 的值

标签: regexpowershellpattern-matching

解决方案


文档中:

评论

Match(String, String) 方法返回与输入字符串中的正则表达式模式匹配的第一个子字符串。

如果您只能修改模式而不能修改其余代码,则无法实现您想要的。

你需要类似的东西

$pattern = '[!%]'
[regex]::Replace($text, $pattern, '')

或者

$pattern = '[!%]'
$text -replace $pattern

推荐阅读