gpt4 book ai didi

c# - 正则表达式过滤掉 $

转载 作者:太空宇宙 更新时间:2023-11-03 23:44:51 25 4
gpt4 key购买 nike

我有一个返回以下项目的 powershell 脚本:

migration test 
TECHS-NT$
Administrator
krbtgt
SDI$

现在,我想消除包含 $ 的项,并将不包含 $ 的项提供给列表。类似的东西,

    List<string> powershellResults = new List<string>();
foreach (string str in Powershell.Create().AddScript(PS Script))
{
if (Regex.IsMatch(str, @"(\w*[^$])"))
{
powershellResults.Add(str);
}
}

foreach (string str in powershellResults)
{
Console.WriteLine(str);
}

但是,(\w*[^$]) 匹配每个项目而不是过滤掉 SDI$ 和 TECHS-NT$ 项目。如果不是 (\w*[^$]),我的正则表达式应该是什么样子?

最佳答案

您的正则表达式看起来有点奇怪。如果你想匹配以美元符号结尾的行,试试这样:

\$$

请记住,$ 在正则表达式中表示行尾/字符串,因此要使用它需要对其进行转义。如果您希望匹配任何包含美元符号的行,只需:

\$

不过,如果我们可以说服您不要为此使用正则表达式,LINQ 会容易得多。简单地:

var res = from line in Powershell.Create().AddScript( PS Script )
where !line.EndsWith( "$" )
select line;

或者:

var res = Powershell.Create().AddScript( PS Script ).Where( q => !q.EndsWith( "$" ) );

EndsWith 更改为 Contains 以查找任何美元符号,而不仅仅是末尾的美元符号。

关于c# - 正则表达式过滤掉 $,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27868608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com