Ruby encuentra una expresión matemática completa en una cadena usando RegEx [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Expresión regular para unir dígitos y operadores matemáticos básicos 7 respuestas

Estoy tratando de escribir un programa que tome una cadena y use RegEx para buscar ciertas expresiones matemáticas, como 1 * 3 + 4 / 2. Solo los operadores a buscar son [- * + /].

hasta aquí:

string = "something something nothing 1/ 2 * 3 nothing hello world"

a = /\d+\s*[\+ \* \/ -]\s*\d+/

puts a.match(string)

produce:

1/ 2

Quiero tomar toda la ecuación 1/2 * 3. Soy esencialmente nuevo en el mundo de las expresiones regulares, por lo que cualquier ayuda será apreciada.

Nueva información:

a = /\s*-?\d+(?:\s*[-\+\*\/]\s*\d+)+/

Gracias a zx81 por su respuesta. Tuve que modificarlo para poder trabajar. Por alguna razón, ^ y $ no producen ningún resultado, o tal vez un resultado nulo, para a.match (string). Además, ciertos operadores necesitan un \ antes de ellos.

Versión para trabajar con paréntesis:

a = /\(* \s* \d+ \s* (( [-\+\*\/] \s* \d+ \)* \s* ) | ( [-\+\*\/] \s* \(* \s* \d+ \s* ))+/

Respuestas a la pregunta(1)

Su respuesta a la pregunta