Ruby находит целое математическое выражение в строке, используя RegEx [duplicate]

На этот вопрос уже есть ответ здесь:

Регулярное выражение для сопоставления цифр и основных математических операторов 7 ответов

Я пытаюсь написать программу, которая будет принимать строку и использовать RegEx для поиска определенных математических выражений, таких как 1 * 3 + 4 / 2. Только операторы, которые нужно искать, это [- * + /].

до сих пор:

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

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

puts a.match(string)

производит:

1/ 2

Я хочу взять все уравнение 1/2 * 3. Я совершенно новичок в мире регулярных выражений, поэтому любая помощь будет оценена по достоинству!

Новая информация:

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

Спасибо zx81 за его ответ. Я должен был изменить это, чтобы работать. По какой-то причине ^ и $ не производят никакого вывода или, возможно, нулевого вывода для a.match (string). Кроме того, некоторые операторы должны \ перед ними.

Версия для работы с круглыми скобками:

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

Ответы на вопрос(1)

Ваш ответ на вопрос