2014-01-27 18 views
0

我们公司将HTML页面模板保存在一个.CSV文件中,用“;”分隔HTML页面(每一行.CSV上有一个完整的网站)。 网站将由一个批处理文件生成,第一步是用同样存储在同一个.CSV(行首)中的变量覆盖HTML模板,并在第二步导出HTML页面。 要在模板中替换的HTML字符串用占位符标识!!pageID.tagID.attribute! ,并且在HTML内容(每行一个站点)之前,在每行的开始处使用语法%pageID.tagID.attribute = value%声明几十个变量。 由于缺乏良好的正则表达式技巧,我被困在我的cmd.exe批处理文件中。 谁可以找到正确的正则表达式模式(以^开始并以$结尾),它将用我的变量值覆盖我的HTML模板。 我打算使用findrepl.bat实用程序http://www.dostips.com/forum/viewtopic.php?f=3&t=4697来允许WSH/VBS正则表达式。 Powershell可以用于.NET高级正则表达式($ matches object?) 非常感谢。来自我老板的好奖励...用cmd.exe + regexp覆盖一个.CSV文件中的HTML

例如:一个.CSV文件的行 %AA.line1.href = Microsoft.com %% AA.line1.txt =您好%%%AB.warning.css = red%... ...等(约50个变量); '<'body'>'...'<'a href =! AA.line1.href! '>'<'strong'>!!AA.line1.txt! '<'/ strong'>'<'span> World'<'/ span'>'<'/ a'>'...'<'/ body'>'; '<'body'>'...'<'section style =“color:!AB.warning.css!”'>'请阅读'<'/ section'>'...'<'/ body'>'; ...(大约20个HTML页面模板)

回答

0

你的解释有点不清楚,但是从我收集的内容来看,你有一个包含许多字符串的大文件。在这些字符串中,有一小组变量被感叹号包围。

这个正则表达式应该从该字符串中提取每个变量(pageID,tagID和属性)。

  • !\w+.将捕获的pageID

  • .\w+.将捕获TAGID(与包含周期沿)

  • .\w+!将捕获属性(连同(带有惊叹号和周期沿)期间和尾随感叹号)