【发布时间】:2012-01-26 21:42:37
【问题描述】:
这是一个非常基本的正则表达式问题,但我不太确定我哪里出错了。
我正在尝试获取这样的输入字符串:
string exp = @"$a$ + $ab$";
匹配模式$....$ 并替换原始字符串中的值。例如,我想用数字 1 替换 $a$,用数字 2 替换 $ab$,所以我的最终字符串看起来像 "1 + 2"。
我设置的是以下功能:
private string SubstituteStandardValues(string exp)
{
//Find Std values w/Regex
Match match = Regex.Match(exp, @"/\($.*$\)/s", RegexOptions.IgnoreCase);
if (match.Success)
{
foreach (var m in match.Groups)
{
//Do string replace logic here!
}
}
return exp;
}
我的问题是match 总是false,这让我相信我的正则表达式不正确。
我误入歧途了?感谢您的帮助!
【问题讨论】:
-
/\ 是什么意思?另外,可能想使用惰性匹配,而不是贪婪
-
除了正则表达式,一个简单的
exp.Replace("$a$","1").Replace("$b$","2")也可以工作。