gpt4 book ai didi

C#:删除两个定界符之间的所有字符

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

遇到一点 Stringcutting 问题。我得到了这样的字符串:

@VAR;Variable=Deteministic;Value=mostly;Note=Unless Slave is already in use;Op==;@ENDVAR;

Note 对我来说不是必需的,所以我想删除所有以 Note 开头的内容,直到下一个分号。 Replace-Method 会很好,但我不知道如何在 Note 之后获取 Chars。

我试过这样的:

 int index1 = rs.IndexOf("Note=");
int index2 = rs.IndexOf(';', index1+1);
rs = rs.Remove(index1, index2);

我认为这应该足够了,但如果没有注释并且我的程序弹出错误,它就会失败。正则表达式是一种选择,但我想不出适合这里的一种。

请注意,该示例只是一个示例。我不知道输入字符串的样子。一行可以包含两个注释,另一行可以没有。请在您的回答中考虑这一点。

最佳答案

正则表达式确实可以在这里提供帮助:

rs = Regex.Replace(s, "(?<=;)Note=.*?;", "");

让我解释一下其中比较晦涩的部分:

  • (?<=;)确保Note前面有一个分号。但是,该分号不是替换的一部分。 (这是一个 positive look-behind assertion )。

  • .*?;匹配分号之前的所有字符,但非贪婪。这确保了 Note=A;x=B;只匹配到 第一个 分号和 x=B被保留。

关于C#:删除两个定界符之间的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18890313/

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