正则表达式怎么那么难看懂呀!

xinqq163 2011-04-12 03:38:44
/// <summary>
/// 模版变量的正则表达式,例如:<$:title> 或带属性的变量:<$:time fieldname="PostTime">
/// </summary>
internal static readonly Regex TemplateVarRegex = new Regex("\\G<\\$\\:\\s*(?<varname>[\\w\\.]+)(\\s+(?<attrname>[-\\w]+)(\\s*=\\s*\"(?<attrval>[^\"]*)\"|\\s*=\\s*'(?<attrval>[^']*)'|\\s*=\\s*(?<attrval>[^\\s=/>]*)))*\\s*?>", RegexOptions.Compiled);

谁能把上面的匹配规则一个个说明下,谢谢
\\G<\\$\\: 这个<$: 看的出来了, 但前面的还要\G 是什么意思的呢,后面的更加看不东到底是什么概念。

那些规则符号我也看的差不多,但整体放一起感觉还是没有弄明白? 看的头晕

...全文
168 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinqq163 2011-04-14
  • 打赏
  • 举报
回复
谢谢 ,可能基础还不够,看的不明白。好好温习先。呵呵
kingdom_0 2011-04-13
  • 打赏
  • 举报
回复
不会正则。唉。
wangting0613 2011-04-13
  • 打赏
  • 举报
回复
正则我的弱点,,,
xinqq163 2011-04-13
  • 打赏
  • 举报
回复
\\s*(?<varname>[\\w\\.]+)(\\s+(?<attrname>[-\\w]+)(\\s*=\\s*\"(?<attrval>[^\"]*)\"|\\s*=\\s*'(?<attrval>[^']*)'|\\s*=\\s*(?<attrval>[^\\s=/>]*)))*\\s*?> 看不懂怎么匹配。哎。。

模版变量的正则表达式,例如:<$:title> 或带属性的变量:<$:time fieldname="PostTime">
-过客- 2011-04-12
  • 打赏
  • 举报
回复
\G 匹配的起始位置,或上一次匹配的结束位置,这个要根据实际情况看是否有必要加

话说正则没那样用的,分支结构(...|...)的效率比较低,所以能合并的共性的内容要尽量合并
Regex reg = new Regex(@"<\$:\s*(?<varname>[\w\.]+)(?:\s+(?<attrname>[-\w]+)\s*=\s*(['""]?)(?<attrval>[^'""\s>]*)\1)*\s*>");
xinqq163 2011-04-12
  • 打赏
  • 举报
回复
谁自己开发过模板引擎的,就HTML和CS 分离。分享下经验。谢谢。
  • 打赏
  • 举报
回复
补充,所有匹配<$:,整段我也不太懂呵呵
  • 打赏
  • 举报
回复
//G应该是所有的意思吧。
所有的<$:的意思

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧