const regex = new RegExp('(aS)\\s+((\\`)?\\w+(\\`)?)(\\s+|\\,|(FRom\\s+))', 'gmi')
const str = ` SELECT
a.WORKORDER_NO AS workOrderNo,
a.ORD_TYPE AS ordType,
a.ORD_NO AS ordNo,
a.RETURN_FLAG AS returnFlag,
a.AREA_ID AS areaId,
a.USER_NAME AS userName,
a.ADDR_DETAIL AS addrDetail,
a.HANDLE_STAFF_ID AS handleStaffId,
a.TAKE_STAFF_ID AS takeStaffId,
a.TAKE_TS AS takeTs,
a.RETURN_STAFF_ID AS returnStaffId,
a.RETURN_TS AS returnTs,
a.SUMMARY AS summary,
a.WO_TITLE AS woTitle,
a.INSTALL_FLAG AS installFlag,
a.START_TS AS startTs,
a.END_TS AS endTs,
a.GRID_ID AS gridId,
a.SCHEMA_ID AS schemaId,
a.PROJECT_ID AS projectId,
a.COMMENTS AS comments,
a.STATE AS \`state\`,
a.CREATE_USER AS createUser,
a.CREATE_DATE AS createDate,
a.MODIFY_USER AS modifyUser,
a.MODIFY_DATE AS modifyDate,
a.HANDLE_TEAM_ID AS handleTeamId,
a.PACKAGE_ID AS packageId,
a.PACKAGE_NAME AS packageName,
a.SUB_TYPE AS subType,
a.pre_work_order_no AS preWorkOrderNo,
a.IS_SYNC AS isSync,
a.IS_VIRTUAL AS isVirtual,
a.VIRTUAL_WORKORDER_NO AS virtualWorkOrderNo,
a.VIRTUAL_WORKORDER_RES_ID AS virtualWorkOrderResId,
a.IS_POLE AS isPole,
a.VER_NO AS verNo,
a.TASK_ID AS taskId,
b.USER_NAME AS userName
FROM oss_edn.edn_work_order a
LEFT JOIN oss_wfm.wfs_user_infor b ON a.HANDLE_STAFF_ID = b.USER_ID
WHERE a.WORKORDER_NO = :workOrderNo`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions