我正在尝试获取正则表达式的符号之间的字符串,但似乎在文本框中什么都找不到
var ph = txtCodigo.Text;
foreach(Match m in
Regex.Matches(ph,@"${(.*?)}$",RegexOptions.IgnoreCase))
{
lstParams.Items.Add(m.Groups[1].ToString());
}
我希望字符串在符号$ {} $之间,但实际输出为空
答案 0 :(得分:0)
$
是正则表达式中的特殊符号,与其他地方的特殊符号一样,必须转义\$
。为了在标签内获取某些内容,但排除标签,我们在正则表达式中使用了lookaround
表达式。
Regex rx = "(?<=\$\{).+?(?=\}\$)"
说明
(?<=
查找并排除起始符号,在这种情况下为${
。技术名称为positive lookbehind
.+?
查找任意数量的字符(特殊字符,空格或其他字符)
(?=
查找并排除结束符号,在这种情况下为}$
。技术名称为positive lookahead
Example on Regexr在Regexr上测试您的正则表达式,它将为您节省很多麻烦