我想将格式为[@ID = ###]的字符串中的值替换为其他内容。字符串可以有[@ID = ###]和其他东西,但它是我所关注的括号内的位。例如:
[@ ID = 3671818] +2
为此,我只想更换" [@ ID = 3671818]" - " + 2"需要保持原样。
我想尝试这样的事情:
value = value.Replace().Insert();
但我知道这不会奏效。有没有办法在一行代码中执行此操作,还是需要使用各种字符串变量?在中,我需要一个startIndex变量和endIndex变量来删除" [@ ID ="和"]"首先,我可以针对两者之间的目标?
答案 0 :(得分:6)
这是正则表达式的用途:
string str = @"[@ID=3671818]+2";
var newStr = Regex.Replace(str, @"\[.*\]", "TEST");
Console.WriteLine(newStr);
//newStr = "TEST+2"
括号内的所有内容(包括括号)都将替换为替换字符串。
如果您想保留括号,请使用
@"(?<=\[).*(?=\])" //newStr = "[TEST]+2"
使用lookaheads和lookbehinds在括号内查找文本,并替换该文本。
就学习Regex而言,有很多指南,我更喜欢RegExr来测试它们。