是否有用过滤器替换值的功能

时间:2019-12-31 03:14:53

标签: c# string replace

我正在尝试替换仅括号中的值。当我使用string.Replace()时,它将替换所有值(括号内和括号外)。我应该用什么来替换仅放在方括号中的值?

原始字符串:"Example string: `REPLACEME` (`REPLACEME`)"

必需的字符串:"Example string: `REPLACEMENT` (`REPLACEME`)"

P.S。我不是要替换字符串中的第一个值,在这里重要的是替换OUT OF BRACKETS值

1 个答案:

答案 0 :(得分:1)

您可以在Negavtive LookAhead and LookBehind之后使用正则表达式

(?<!\()\`\bREPLACEME\b\`(?![\w\s]*[\)])

例如,

var str = @"Example string: `REPLACEME` (`REPLACEME`)";
var result = Regex.Replace(str,@"(?<!\()\`\bREPLACEME\b\`(?![\w\s]*[\)])","`REPLACEMENT`");

哪里

(?<!\():与字符(匹配的负向外观

(?![\)]):与字符)匹配的负前瞻

Regex Demo