用其他东西替换字符串的一部分
本文关键字:字符串 一部分 替换 其他 | 更新日期: 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来测试它们。