我正在使用C#并编写邮件合并应用程序。我的用户按如下方式存储模板
Dear [[-UserName-]],
You have been subscribed for [[-SubscriptionName-]]...
等等。 [[-xxxxx-]]
占位符之间会有很多自定义字段。我把它们合并得很好。但有时他们不会为一些占位符而过。我想用正则表达式找到那些东西并用空字符串替换它们。
从技术上讲,我想查找正则表达式以查找[[-what ever it is in between-]]
并将空字符串替换为[[--]]
个标记
答案 0 :(得分:2)
您可以使用:
\[{2}(-.*?-)\]{2}
# look for [[-, -]] and anything in between.
这称为懒星点,请参阅a demo on regex101.com。
答案 1 :(得分:0)
由于标签名称中没有破折号,您可以使用此正则表达式:
\[\[-([^-]+)-\]\]
标记名称将位于捕获组1中。显然,我建议使用@""
类型的字符串作为正则表达式。
您将需要使用替换字符串:
[[--]]
基本上正则表达式找到[[-
,然后捕获一堆非-
个字符,然后找到-]]
。