¿Cómo puedo sacar los 2 números entre Price Our: y lo siguiente | de esta cadena?
"Delivery: Price => 30.00 - 45.00 | Price Our: 1900.00 => 1800.00 | Delivery: Contact => 3 - 4 Days | " Intenté (Price Our:.*?(?=\|)) Pero ese es el límite de mi conocimiento de expresiones regulares
Podrías usar 2 grupos de captura:
\bPrice Our: (\d+(?:\.\d+)?) => (\d+(?:\.\d+)?) \|El patrón coincide:
\bPrice Our: un límite de palabra para evitar una coincidencia parcial, luego haga coincidir Price Our:(\d+(?:\.\d+)?) Capture el grupo 1, haga coincidir un número con una parte decimal opcional=> Coincidir literalmente(\d+(?:\.\d+)?) Capture el grupo 2, haga coincidir un número con una parte decimal opcional\| Partido |Demostración de expresiones regulares
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]); } En caso de que los dígitos estén al final de la cadena y no haya | siguiente, puede dar cuenta de eso usando una alternancia para afirmar el final de la cadena:
\bPrice Our: (\d+(?:\.\d+)?) => (\d+(?:\.\d+)?)(?: \||$)(\d*\.\d+)explicación de regex101 :
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)