用其他东西替换字符串的一部分

本文关键字:字符串 一部分 替换 其他 | 更新日期: 2023-09-27 18:29:21

我想用其他东西替换格式化为[@ID=###]的字符串中的值。字符串可以有[@ID=###]和其他内容,但我关心的是括号内的那个位。例如:

[@ID=3671818]+2

为此,我只想替换"[@ID=3671818]"——"+2"需要保持原样。

我想试试这样的东西:

value = value.Replace().Insert();

但我知道这行不通。有没有办法在一行代码中做到这一点,或者我需要使用各种字符串变量?和中一样,我是否需要一个startIndex变量和endIndex变量来首先删除"[@ID="answers"]"部分,这样我就可以针对介于两者之间的部分?

用其他东西替换字符串的一部分

这就是正则表达式的作用:

string str = @"[@ID=3671818]+2";
var newStr = Regex.Replace(str, @"'[.*']", "TEST");
Console.WriteLine(newStr);
//newStr = "TEST+2"

括号内的所有内容(包括括号)都将替换为替换字符串。

如果你想保留括号,你可以使用

@"(?<='[).*(?='])"  //newStr = "[TEST]+2"

它使用lookahead和lookbehinds查找括号内的文本,并替换该文本。

至于学习Regex,有很多指南,我更喜欢RegExr来测试它们。