const regex = new RegExp('(?i)(\\d+[.,]?\\d+)\\s*(?:-.*\\bfurnished\\s*)?(p/?w|wdk|per week|weekly|/w|p\\\\.?c\\\\.?m|mth|pm|per month|per night|pn|p.a)?', 'gmi')
const str = `\$350.00
\$450.00 pw
\$320 - fully furnished pw
\$325 per week
\$495pw - Views! White goods!
\$460p/w + gst and outgoings
\$300 wdk
\$390pw / \$1695pcm
\$180 pw / \$782 pm
\$375 Per Week/Fully Furnished
\$350 pw + GST & Outgoings
APPLY NOW - From \$270 per week
\$185 per night
\$400pw incl. power
\$500 weekly
\$600 per week pw
\$850 per week (Fully furnished)
FROM \$400PW, FURNITURE AND BILLS INCLUDED
THE DEAL- \$780 PER WEEK
THE DEAL: \$1,400 PER WEEK
\$750/W Unfurnished
\$320 - fully furnished pw
\$330 PER WEEK | \$1,430 P.C.M
Enquire Now: \$690 per week
\$460 per week / \$1999 per month
\$490 per week/Under Application approved
\$1550pw - Location! Rare gem!
295 per week
unit 2 - \$780pw unit 3 - \$760pw
\$2500 pw high, \$1600pw low,\$380 pn
from \$786 - \$1572 per week
\$590 to \$639
\$280 - \$290 pw`;
// 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