これは非常に基本的な正規表現の質問ですが、どこが間違っているのかよく分かりません。C#の2つのマーカー文字の間に可変長文字列を見つけるにはどうすればよいですか?
string exp = @"$a$ + $ab$";
マッチパターン$....$
をし、元の文字列にその値を置き換えます
$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
であり、私の正規表現が間違っていると信じて私をリード:
は私が設定していることは、次の関数です。
どこが迷子になりましたか?助けてくれてありがとう! .NETの正規表現なし修飾子( "/ S")には正規表現区切り文字( "/")がありません
@"\$[^$]+\$"
:
のために/ \は何ですか?また、貪欲でない怠惰なマッチを使用したいかもしれません。 –
Regexとは別に、単純な 'exp.Replace(" $ a $ "、" 1 ")。Replace(" $ b $ "、" 2 ")' would仕事も。 –