繁体   English   中英

使用正则表达式从字符串中提取字符串

[英]Extract string from string using Regex

我想从视图页面提取MasterPage值指令。 考虑到很大的aspx页面和很小的aspx页面,我想要最快的方法。

我认为最好的方法是分两个阶段进行:

  1. 从视图中提取页面指令部分(使用Regex):
    <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

  2. 然后,提取MasterPageFile属性内的值。

结果需要为: ~/Views/Shared/Site.Master

我可以从某人那里寻求帮助来实现这一目标吗? 我非常想只使用正则表达式,但是我不是正则表达式专家。

另一件事,您认为正则表达式是最快的方法吗?

这是一个与Page指令匹配的正则表达式,将具有组1中MasterPageFile属性的值:

<%@\s?Page.*?MasterPageFile="([^"]+)".*?%>$

你为什么需要它 ? 如果在运行时显示Page时需要了解MasterPageFile,则有更简便快捷的方法。

    string a = "<%@ Page Language=\"C#\" MasterPageFile=\"~/Views/Shared/Site.Master\" Inherits=\"System.Web.Mvc.ViewPage\" %>";

    Regex r = new Regex("<%@.*MasterPageFile=\"([^\"]*)\".*%>", RegexOptions.Compiled);
    Match m = r.Match(a);
    if (m.Success)
    {
       // what you want is in m.Groups[1]
    }

组是包含匹配部分的字符串数组。 Groups [0]是整体匹配项,其余部分将是正则表达式括号中包含的所有内容。 因此,在上面,我用括号将所需的部分括起来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM