【问题标题】:How do i use Regex in C# to extract @ViewData variable values from a cshtml page?如何在 C# 中使用 Regex 从 cshtml 页面中提取 @ViewData 变量值?
【发布时间】:2016-08-25 16:29:13
【问题描述】:

我有以下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\[""\\]*(?:\\.[^""\]\\]*)*"""

但没有运气!我有点像 RegX 菜鸟!!!有人可以帮忙吗?

谢谢!

【问题讨论】:

    标签: c# asp.net regex razor


    【解决方案1】:

    如果您只想要 @ViewData 中的值,我认为这种模式可以满足您的需求:@ViewData\[\"(.*?)\"\]。该值将是捕获组。

    【讨论】:

      猜你喜欢
      • 2012-01-13
      • 2011-12-10
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 2019-09-14
      • 2012-07-23
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多