带有双重卷曲/方括号的C#中的字符串替换问题[关闭]

问题描述 投票:-3回答:2

我正在尝试使用c#替换文本中使用替代文本替换预定义的“标记”,但是我很难找到使用string.replace或合适的正则表达式解决方案的简单方法。

使用案例:

将给定文本中的{{xxxxxx}}的所有实例替换为不同的内容,例如“yyyyy yyyyyy”

如果{{xxxxx}}本身存在问题,我可以更改为[[xxxxxx]]或((xxxxxx))。

目前,我无法找到适用于上述任何模式的单个String或Regex操作。

c# string replace
2个回答
1
投票

这是一个如何轻松实现标签替换的Regex示例

\{\{(.*?)}}

var someText = "blah blah blah {{Hello}} blah";
var substitute = "Rah";
var result = Regex.Replace(someText, @"\{\{(.*?)}}", substitute);

产量

blah blah blah Rah blah

说明

  • {匹配字符{字面(区分大小写))
  • {匹配字符{字面(区分大小写)) 第一捕获组(。*?) 。*?匹配任何字符(行终止符除外) *?量词 - 在零和无限时间之间匹配,尽可能少,根据需要扩展(懒惰)
  • 从字面上匹配字符}}(区分大小写) 全局模式标志 g修饰符:全局。所有比赛(首场比赛后不返回)

0
投票

在某些上下文中(如Console.WriteLine的一些重载),字符串中的花括号可能会被解释为开始和结束format item。但是,您提供的示例代码为works for me

© www.soinside.com 2019 - 2024. All rights reserved.