[英]Extract string from string using Regex
我想从视图页面提取MasterPage
值指令。 考虑到很大的aspx
页面和很小的aspx
页面,我想要最快的方法。
我认为最好的方法是分两个阶段进行:
从视图中提取页面指令部分(使用Regex):
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
然后,提取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.