const regex = /Gas Commercial Service \([\S\s]+?(?:[\s]+(?:(?:(?:[\w]+ )*)?(?:[\w]+)?Tax:[xX\d\.\%\s]*?\$[\d\.\s]*?\$([\d\.]*)\s*?))(?:[\s]+(?:(?:(?:[\w]+ )*)?(?:[\w]+)?Tax:[xX\d\.\%\s]*?\$[\d\.\s]*?\$([\d\.]*)\s*?))?(?:[\s]+(?:(?:(?:[\w]+ )*)?(?:[\w]+)?Tax:[xX\d\.\%\s]*?\$[\d\.\s]*?\$([\d\.]*)\s*?))?(?:[\s]+(?:(?:(?:[\w]+ )*)?(?:[\w]+)?Tax:[xX\d\.\%\s]*?\$[\d\.\s]*?\$([\d\.]*)\s*?))?(?:[\s]+(?:(?:(?:[\w]+ )*)?(?:[\w]+)?Tax:[xX\d\.\%\s]*?\$[\d\.\s]*?\$([\d\.]*)\s*?))?(?:[\s]+(?:(?:(?:[\w]+ )*)?(?:[\w]+)?Tax:[xX\d\.\%\s]*?\$[\d\.\s]*?\$([\d\.]*)\s*?))?/;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('Gas Commercial Service \\([\\S\\s]+?(?:[\\s]+(?:(?:(?:[\\w]+ )*)?(?:[\\w]+)?Tax:[xX\\d\\.\\%\\s]*?\\$[\\d\\.\\s]*?\\$([\\d\\.]*)\\s*?))(?:[\\s]+(?:(?:(?:[\\w]+ )*)?(?:[\\w]+)?Tax:[xX\\d\\.\\%\\s]*?\\$[\\d\\.\\s]*?\\$([\\d\\.]*)\\s*?))?(?:[\\s]+(?:(?:(?:[\\w]+ )*)?(?:[\\w]+)?Tax:[xX\\d\\.\\%\\s]*?\\$[\\d\\.\\s]*?\\$([\\d\\.]*)\\s*?))?(?:[\\s]+(?:(?:(?:[\\w]+ )*)?(?:[\\w]+)?Tax:[xX\\d\\.\\%\\s]*?\\$[\\d\\.\\s]*?\\$([\\d\\.]*)\\s*?))?(?:[\\s]+(?:(?:(?:[\\w]+ )*)?(?:[\\w]+)?Tax:[xX\\d\\.\\%\\s]*?\\$[\\d\\.\\s]*?\\$([\\d\\.]*)\\s*?))?(?:[\\s]+(?:(?:(?:[\\w]+ )*)?(?:[\\w]+)?Tax:[xX\\d\\.\\%\\s]*?\\$[\\d\\.\\s]*?\\$([\\d\\.]*)\\s*?))?', '')
const str = ` Due Date: 03/13/13
Electric Commercial Service (E2C)
Meter Number: 298209
Reading 02/26/13 91391 Access Chg: 30 days x \$0.6324 \$18.97
Reading 01/27/13 90150 Access Chg: 1,241 kWh x \$0.0532 \$66.02
1241 Kilowatt Hours(KWH) Supply Chg: 1,241 kWh x \$0.0269 \$33.38
Your average daily usage was 41.37 KWH ECA: 1,241 kWh x \$-0.001 \$1.24 CR
Capacity Chg: 1,241 kWh x \$0.0012 \$1.49
City Sales Tax: 2.5% x \$118.62 \$2.97
County Sales Tax: 1.23% x \$118.62 \$1.46
State Sales Tax: 2.9% x \$118.62 \$3.44
PPRTA Tax: 1% x \$118.62 \$1.19
ECA = Electric Cost Adjustment
- Making energy-efficiency improvements to your
business? Save more money with rebates. Visit
csu.org/business for details.
Total charge this service \$127.68
Gas Commercial Service (G1C)
Meter Number: 73757
Reading 02/26/13 25459 Access Chg (G1CL): 30 days x \$0.7623 \$22.87
Reading 01/27/13 25277 Access Chg (G1CL): 182 CCF x \$0.1571 \$28.59
182 Hundred Cubic Feet(CCF) Gas Cost (G1CL): 182 CCF x \$0.6034 \$109.82
Your average daily usage was 6.07 CCF GCA (G1CL): 182 CCF x \$-0.17 \$30.94 CR
City Sales Tax: 2.5% X \$130.34 \$3.26
County Sales Tax: 1.23% X \$130.34 \$1.60
State Sales Tax: 2.9% X \$130.34 \$3.78
BullSheet Federal SuperTax: 2.9% X \$130.34 \$3.78
PPRTA Tax: 1% X \$130.34 \$1.30
- Smell a rotten egg odor at your business? You may
have a natural gas leak. Leave the premise
immediately, then call 9-1-1. Emergency crews will
respond.
Total charge this service \$140.28`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
if ((m = regex.exec(str)) !== null) {
// 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