我如何使用Regex在c#中提取@ViewData变量值从cshtml页面
本文关键字:变量值 @ViewData cshtml 页面 提取 何使用 Regex | 更新日期: 2023-09-27 18:04:04
我有以下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"]
try this: @"""[^@ViewData'[""'']*(?:''.[^""']'']*)*"""
但是运气不好!我是一个RegeX新手!!有人能帮忙吗?
谢谢!
如果你只是想要@ViewData中的值,我认为这种模式会做你需要的:@ViewData'['"(.*?)'"']
。该值将是捕获组