Попробуйте это:
<cfscript>
newString = urlString.replaceAll( "-pg.*", "" );
</cfscript>
Синтаксис:
String.replaceAll( regex, replacement )
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)
Или вы можете пропустить регулярное выражение и использовать методы Java-String, например, один лайнер для CF9:
<cfscript>
newString = ! urlString.contains( "-pg" ) ? "" : urlString.substring( 0, urlString.indexOf( "-pg" ) );
</cfscript>
То же самое, без троичного оператора, для более старых версий CF:
<cfscript>
if ( urlString.contains( "-pg" ) ) {
newString = urlString.substring( 0, urlString.indexOf( "-pg" ) );
}
else {
newString = "";
}
</cfscript>
Запустил несколько тестов, кажется, String.replaceAll()
метод самый быстрый на моей машине.
<cfscript>
old = "http://www.abc.com/Webpage-pg3.html";
// benchmarks
sys = createObject( "java", "java.lang.System" );
// 35072 ns
// 28160 ns
t1 = sys.nanoTime();
new1 = old.replaceAll( "-pg.*", "" );
t1 = sys.nanoTime() - t1;
// 20992 ns
// 18176 ns
t2 = sys.nanoTime();
new2 = old.contains( "-pg" ) ? "" : old.substring( 0, old.indexOf( "-pg" ) );
t2 = sys.nanoTime() - t2;
</cfscript>