-2

我需要通过抓取页面的顶部和底部并保存为 2 个不同的变量来使用 ColdFusion 动态创建新布局。

顶部停止在顶部,直到这个。

googleoff: all (This is in an HTML Comment)

底部从这里开始

googleon: all (This is in an HTML comment)

直到最后。

我在想我可以使用正则表达式来做到这一点。

4

1 回答 1

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 ) />

由于这适用于固定字符串,因此速度更快 - 但您需要重复数千次才能使这种差异变得显着。

于 2012-07-20T11:05:05.260 回答