假設這些意見僅發生在你所說的,你可以很容易地使用正則表達式的字符串分割做到這一點的位置:
<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) />
因爲這可與固定的字符串,它是更快 - 但你將需要重複此數千倍之前這種差異可能是顯著。
不,只是使用字符串函數,這會更容易。 – Bergi 2012-07-20 01:04:42
可以請稍微擴展一下嗎? – user1235905 2012-07-20 01:41:10
正則表達式會是開銷。只需使用由該語言提供給您的字符串操作工具來搜索確切的字符串並切分子字符串。 – Bergi 2012-07-20 10:04:36