gpt4 book ai didi

C# 如何替换比匹配字符串更短的字符串?

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

如何只替换匹配的正则表达式字符串的一部分?我需要找到一些 inside 的字符串,比如 < > .在此示例中,我需要匹配 23 个字符并仅替换其中的 3 个:

string input = "<tag abc=\"hello world\"> abc=\"whatever\"</tag>";
string output = Regex.Replace(result, ???, "def");
// wanted output: <tag def="hello world"> abc="whatever"</tag>

所以我要么需要找到 abc<tag abc="hello world">或查找 <tag abc="hello world">并仅替换 abc .正则表达式或 C# 允许这样做吗?即使我以不同的方式解决问题,是否可以匹配一个大字符串但只替换它的一小部分?

最佳答案

我必须查找#NET 正则表达式方言,但通常您希望捕获不想替换的部分并在替换字符串中引用它们。

string output = Regex.Replace(input, "(<tag )abc(=\"hello world\">)", "$1def$2");

另一种选择是使用环视来匹配 "abc"其后"<tag ""="hello world">" 之前

string output = Regex.Replace(input, "(?<=<tag )abc(?==\"hello world\")", "def");

关于C# 如何替换比匹配字符串更短的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19809198/

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