export abstract class TextReplacement { abstract replace( source:string ):string; } export class RegexReplacement extends TextReplacement { regex:RegExp; replacement:string; toString() { let info = `RegexReplacement{${this.regex} >> '${this.replacement}'`; return info; } replace( source:string ) { return source.replace( this.regex, this.replacement ); } }