我如何使用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新手!!有人能帮忙吗?

谢谢!

我如何使用Regex在c#中提取@ViewData变量值从cshtml页面

如果你只是想要@ViewData中的值,我认为这种模式会做你需要的:@ViewData'['"(.*?)'"']。该值将是捕获组