我有以下cshtml页面:
<div class="container ptb-60">
<div class="row featurette">
<div class="col-md-7">
<h2 class="featurette-heading">@ViewData["PageTitle"]</h2>
<p class="lead">@ViewData["Excerpt"]</p>
<p>
<a class="btn btn-primary btn-lg" href="@ViewData["Template.HeaderButton.Url"]" role="button">@ViewData["Template.HeaderButton.Text"]</a>
</p>
</div>
<div class="col-md-5">
<img class="featurette-image img-responsive center-block" src="@ViewData["Template.HeaderButton.Image"]" alt="@ViewData["Template.HeaderButton.AltText"]">
</div>
</div>
我希望提取@ViewData的所有变量值 - 所以对于这个例子,我想得到一个包含以下内容的匹配列表:
"PageTitle"
"Excerpt"
"Template.HeaderButton.Url"
"Template.HeaderButton.Text"
"Template.HeaderButton.Image"
"Template.HeaderButton.AltText"
到目前为止我的最大努力是使用这个:Regex regex = new Regex(@"""[^""\\]*(?:\\.[^""\\]*)*""");
来提取所有字符串值(在语音标记之间),但这与某些值混淆,我需要搜索@ViewData["GET_THIS_BIT_AS_A_MATCH"]
试过这个:@"""[^@ViewData\[""\\]*(?:\\.[^""\]\\]*)*"""
但没有运气!我有点像RegeX菜鸟!有人可以帮忙吗?
谢谢!
答案 0 :(得分:1)
如果您只想要@ViewData中的值,我认为这种模式可以满足您的需求:@ViewData\[\"(.*?)\"\]
。该值将是捕获组。