1

How can I pull out the 2 numbers in-between Price Our: and the following | from this string?

"Delivery: Price => 30.00 - 45.00 | Price Our: 1900.00 => 1800.00 | Delivery: Contact => 3 - 4 Days | "

I tried (Price Our:.*?(?=\|)) But thats the limit of my regex knowledge

2 Answers 2

2

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

Sign up to request clarification or add additional context in comments.

Comments

1

(\d*\.\d+)

regex101 explanation:

enter image description here

const regex = /(\d*\.\d+)/gm;
const str = "Delivery: Contact => 3 - 4 Days | Price Our: 1900.00 => 1800.00 | Delivery: Contact => 3 - 4 Days | ";

const res = str.match(regex)

console.log(res)

1 Comment

what if their are other numbers in the string I want specifically from Price our: to the following |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.