const regex = /^(\w+)\s+(\w+)(\(\d*\))?.*$/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^(\\w+)\\s+(\\w+)(\\(\\d*\\))?.*$', 'gm')
const str = `userId bigint(20) NO PRI auto_increment
createDate datetime YES
modifiedDate datetime YES
password_ varchar(75) YES
passwordEncrypted tinyint(4) YES
passwordModifiedDate datetime YES
sAMAccountName varchar(255) YES MUL
screenName varchar(75) YES UNI
screenNameModifiedDate datetime YES
emailAddress varchar(75) YES MUL
firstName varchar(75) YES
lastName varchar() YES
lastLoginDate datetime YES
active_ tinyint(4) YES MUL
phone varchar(25) YES
token varchar(75) YES
tokenValidUntil datetime YES
deletedAt datetime YES
deletedByUserId bigint(20) YES
eightByEightId varchar(100) YES
fitPushToken varchar(255) YES
-- query 2:
WORKORDER_NO varchar(32) NO PRI
WORKORDER_RES_ID varchar(18) NO PRI
ATTR_ID varchar(60) NO PRI
ATTR_NAME varchar(40) NO
ATTR_DISP_NAME varchar(256) YES
ATTR_VAL varchar(4000) YES
CONTROL_TYPE char(1) YES
DATA_SOURCE text YES
CONTROL_FLAG char(1) YES
ATTR_FLAG char(1) NO
DATA_TYPE char(1) YES
DATA_LEN int(4) YES
PRECISION int(2) YES
SCALE int(2) YES
IS_NULL char(1) YES
INIT_VALUE varchar(80) YES
STATE char(1) NO A
CREATE_USER decimal(9,0) YES
CREATE_DATE datetime YES
MODIFY_USER decimal(9,0) YES
MODIFY_DATE datetime YES `;
// 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