gpt4 book ai didi

c# - 为正则表达式禁用全局

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

我想关闭全局设置(因为它默认设置为在 .NET 上使用),因为我想要做的只需要更改字符串的第一部分,但是它有可能将在字符串中出现两次,例如我希望

C00000WPF0000SAND

只改变 0 的第一个实例。

if (Regex.IsMatch(text, "^[a-z]+00+", RegexOptions.IgnoreCase))
{
text = Regex.Replace(text, "0{1,}", "00*", RegexOptions.IgnoreCase);
}

这就是我目前的做法,但是这似乎需要“00+”的每个实例并进行更改,但这会把事情搞砸。

最佳答案

您需要指定一个匹配限制; Regex.Replace(string, string, RegexOptions) 的文档明确指出它会替换找到的模式的所有实例。 Regex.Replace 没有同时采用匹配限制和正则表达式选项的静态重载,因此您必须构造一个 Regex 对象,然后使用 Replace(string, string, int) 重载。试试这个:

text = new Regex("0{1,}", RegexOptions.IgnoreCase).Replace(text, "00*", 1);

关于c# - 为正则表达式禁用全局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10980418/

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