const regex = /(?<= |^)(([\w\d_]+) : ([A-Za-z0-9-]+(?= )|(\d*[)( -])*\d+|[A-Za-z0-9-_.]+@[A-Za-z0-9-_.]+\.[A-Za-z]+(?= ))?) ?/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?<= |^)(([\\w\\d_]+) : ([A-Za-z0-9-]+(?= )|(\\d*[)( -])*\\d+|[A-Za-z0-9-_.]+@[A-Za-z0-9-_.]+\\.[A-Za-z]+(?= ))?) ?', 'g')
const str = `bypass_first_page : x_company : x_cust_id : 12345 x_customer_ip : x_customer_tax_id : x_description : 98765 x_duty : x_email_customer : an_example@example.com x_fax : x_footer_email_receipt : x_fp_hash : 747ffeddfe4e106a9c67363ebff996ad x_fp_timestamp : 1525100766 x_invoice_num : R000098765 x_login : MY-LOGIN-ID x_logo_url : x_merchant_email : x_method : x_phone : (416) 555-1212 x_po_num : x_receipt_link_method : GET x_reference_3 : 1234 x_relay_response : TRUE x_relay_url : `;
const subst = `[\2] => \3\n`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
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