我需要使用ColdFusion动态创建一个新的布局,方法是将页面的顶部和底部翻译为2个不同的变量。
在此之前,顶部停在顶部。
googleoff: all (This is in an HTML Comment)
底部从
开始googleon: all (This is in an HTML comment)
直到最后。
我在想我可以使用正则表达式来做到这一点。
答案 0 :(得分:0)
假设这些注释只出现在您所声明的位置,您可以使用正则表达式字符串拆分轻松完成此操作:
<cfset Sections = String.split( '<!-- google(?:on|off): all -->' ) />
<cfset TopOfPage = Sections[1] />
<cfset BottomOfPage = Sections[3] />
如果注释没有修复,则需要更新正则表达式 - 例如,如果空格不可预测,则可以用\s*
替换空格。
为了比较,这是一个非正则表达式版本:
<cfset EndOfTopPos = find( '<!-- googleoff: all -->' , String ) - 1 />
<cfset StartOfBottomPos = find( '<!-- googleon: all -->' , String , EndOfTopPos ) + 22 />
<cfset TopOfPage = left( String , EndOfTopPos ) />
<cfset BottomOfPage = right( String , len(String)-StartOfBottomPos ) />
由于这适用于固定字符串,因此速度更快 - 但在此差异可能很大之前,您需要重复几千次。