gpt4 book ai didi

c# - RegEx.Replace 只是替换第一次出现,需要全部

转载 作者:行者123 更新时间:2023-11-30 20:58:04 25 4
gpt4 key购买 nike

我在使用 C# 中的 Regex.Replace 时遇到问题,因为它似乎没有替换所有出现的匹配模式。

private string ReplaceBBCode(string inStr)  
{
var outStr = Regex.Replace(inStr, @"\[(b|i|u)\](.*?)\[/\1\]", @"<$1>$2</$1>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
outStr = Regex.Replace(outStr, "(\r|\n)+", "<br />");
return outStr;
}

输入字符串:

[b]Saint Paul's Food Kitchen[/b]    [b]  [/b]Saint Paul's food kitchen opens weekly to provide food to those in need.

结果:

<b>Saint Paul's Food Kitchen</b>    [b]  [/b]Saint Paul's food kitchen opens weekly to provide food to those in need.

我已经在 regexhero.net 中对此进行了测试,它可以正常工作。

编辑:
抱歉,复制了错误版本的函数。它现在显示正确的代码,但对我来说是不正确的。

最佳答案

我得到的输出与你说的完全不同,但是

我看到的最大问题是,您可能不希望您的正则表达式是贪婪的。

尝试将 .* 替换为 .*?

关于c# - RegEx.Replace 只是替换第一次出现,需要全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16361446/

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