import Singleton from "../../patterns/Singleton"; const FUNCTION_IDENTIFIER = "@" export class MybatisRegExpClass extends Singleton{ // public functionParameter:RegExp = new RegExp(`(?<=\\()(.*?)(?=\\))`, 'g'); // public functionParameter:RegExp = new RegExp(`(?<=\\()(.*)(?=\\))`, 'g'); // public functionName:RegExp = new RegExp('(?<='+FUNCTION_IDENTIFIER+')(.*?)(?=\\()', 'g'); // public functionStatement:RegExp = new RegExp('[\\s]?[\\s]?[\\s]?[\\s]?[\\s]?(^|[^\\w]|\\b)((?<='+FUNCTION_IDENTIFIER+')(.*?)(?=\\)))($|[^\\w]|\\b)[\\s]?[\\s]?[\\s]?[\\s]?[\\s]?', 'g'); public isDate: RegExp = new RegExp(/^(?:(?:1[6-9]|[2-9]\d)?\d{2})(?:(?:(\/|-|\.)(?:0?[13578]|1[02])\1(?:31))|(?:(\/|-|\.)(?:0?[13-9]|1[0-2])\2(?:29|30)))$|^(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)0?2\3(?:29)$|^(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:0?[1-9]|1\d|2[0-8])$/gm); public isNumber: RegExp = new RegExp('^[0-9]*$', 'g') public isStringNotEmpty: RegExp = new RegExp('([a-zA-Z])', 'g'); public getStatementToken = new RegExp(`[a-zA-Z0-9ㄱ-ㅎㅏ-ㅣ가-힣_.@-]+`, 'g'); public commentDeleteReg = new RegExp('/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/', 'g'); public removeCommaRepeated2 = new RegExp('(,)(,|\\s){2,}', 'g'); public removeCommaFirstExist = new RegExp('(^)([\\s]*?)(,)', 'g'); public removeCommaLastExist = new RegExp('(,)([\\s]*?)($)', 'g'); public replaceCdata = new RegExp('()', 'g'); public flatText =/^\s*$/g; public parameterSearchReg(change: string) { // return new RegExp('(\\' + change + '\\{[\\s]?[\\s]?[\\s]?[\\s]?[\\s]?[a-zA-Z0-9._,=\\$\\s]+[\\s]?[\\s]?[\\s]?[\\s]?[\\s]?\\})', 'g'); return new RegExp('\\'+change+'\\{[-a-zA-Z0-9._,=\\$\\s\\+\\*\\b\\@\\(\\)\\{\\}\\\'\\"\\[\\]\\&\\|\\>\\<\\%\\^\\$\\~\\!]+\\}', 'g'); } public parameterChangeReg(change: string, targetParam: string) { return new RegExp('\\' + change + '{' + targetParam + '}', 'g'); } public findOperator(str: string) { // return new RegExp('[\\s]?[\\s]?[\\s]?[\\s]?[\\s]?(^|[^\\w]|\\b)(' + str + ')($|[^\\w\\.\\_\\,\\=\\$\\s\\+\\*\\b\\@\\(\\)\\{\\}\\'\\"\\[\\]\\&\\|\\>\\<\\%\\^\\~\\!]|\\b)[\\s]?[\\s]?[\\s]?[\\s]?[\\s]?', 'g') return new RegExp('[\\s]?[\\s]?[\\s]?[\\s]?[\\s]?(' + str + ')($|[^\\w\\.\\_\\,\\=\\$\\s\\+\\*\\b\\@\\(\\)\\{\\}\\\'\\\"\\[\\]\\&\\|\\>\\<\\%\\^\\~\\!]|\\b)[\\s]?[\\s]?[\\s]?[\\s]?[\\s]?', 'g') } public replaceQueryToken(str: string) { return new RegExp('(' + str + ')', 'g') } public removePrefixOverrides(str:string, flag:string) { return new RegExp('(^)([\\s]*?)(' + str + ')', flag); } public removePostfixOverrides(str:string, flag:string) { return new RegExp('(' + str + ')([\\s]*?)($)', flag); } public getCommaBefore(str:string, flag:string) { return new RegExp('(,)([\\s]*?)('+str+')', flag); } } export const MybatisRegExp = MybatisRegExpClass.getInstance();