gpt4 book ai didi

c# - .NET 正则表达式替换单行匹配未知字符

转载 作者:太空狗 更新时间:2023-10-29 23:10:14 25 4
gpt4 key购买 nike

这让我非常困惑。为什么我在以下代码中得到重复的替换字符串:

static void Main(string[] args)
{
String input = "test";
String pattern = ".*";
String replacement = "replace";
Console.WriteLine(Regex.Replace(input, pattern, replacement));
Console.Read();
}

这输出到控制台:

replacereplace

我知道正则表达式会得到奇怪的匹配结束行字符,但应该没有。我也明白模式不能匹配任何东西,但显然输入不是什么都没有。这发生在 .Net 3.5 和 4.0 中,我对 SingleLine 和 MultiLine 也有同样的看法。

我知道有几种替代方案可以满足我的预期,但我想知道更多其他匹配项。* 认为它的发现。

最佳答案

你得到两个替换的原因是因为使用 .* 你得到两个匹配项:“test”“”

如果您将 .* 更改为 .+,它将按照您期望的方式工作:

String pattern = ".+";

另一种选择是添加字符串 anchor 的开头:

String pattern = "^.*"; // I know this looks like a smiley

关于c# - .NET 正则表达式替换单行匹配未知字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7681706/

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