You could use 2 capture groups:
\bPrice Our: (\d+(?:\.\d+)?) => (\d+(?:\.\d+)?) \|
The pattern matches:
\bPrice Our: A word boundary to prevent a partial match, then match Price Our:
(\d+(?:\.\d+)?) Capture group 1, match a number with an optional decimal part
=> Match literally
(\d+(?:\.\d+)?) Capture group 2, match a number with an optional decimal part
\| Match |
Regex demo
const s = "Delivery: Price => 30.00 - 45.00 | Price Our: 1900.00 => 1800.00 | Delivery: Contact => 3 - 4 Days | ";
const regex = /\bPrice Our: (\d+(?:\.\d+)?) => (\d+(?:\.\d+)?) \|/;
const match = s.match(regex);
if (match) {
console.log(match[1]);
console.log(match[2]);
}
In case the digits are at the end of the string, and there is no | following, you can account for that using an alternation to assert the end of the string:
\bPrice Our: (\d+(?:\.\d+)?) => (\d+(?:\.\d+)?)(?: \||$)
Regex demo