我有各种各样的字符串:
$(gateway.jms.jndi.ic.url,0,tibjmsnaming, tcp)/topic/$(gateway.destination.prefix)$(gateway.StatusTopicName),$(gateway.jms.jndi.ic.username),$(gateway.jms.jndi.ic.password),abinding,tBinding
我正试图找出一种方法来提取$(...)部分并用其他字符串替换它们。
无论如何在C#中解析这些组并逐个替换另一个字符串?
由于
答案 0 :(得分:5)
这个正则表达式将捕获这些部分:
\$\([^)]+\)
然后像这样替换(这个例子将每个匹配改为它的大写等价物 - 你可以添加你想要的任何自定义逻辑):
Regex.Replace(candidate, @"\$\([^)]+\)", delegate(Match m) {
return m.ToString().ToUpper();
});
答案 1 :(得分:0)
我对委托不太好。这是我用安德鲁的正则表达式想出来的:
string test1 = @"$(gateway.jms.jndi.ic.url,0,tibjmsnaming, tcp)/topic/$(gateway.destination.prefix)$(gateway.StatusTopicName),$(gateway.jms.jndi.ic.username),$(gateway.jms.jndi.ic.password),abinding,tBinding";
string regex1 = @"\$\([^)]+\)";
var matches = Regex.Matches(test1, regex1);
Console.WriteLine(matches.Count);
foreach (Match match in matches)
{
test1 = test1.Replace(match.Value, "your String");
}
Console.WriteLine(test1);