Как извлечь из строки только действительные уравнения - PullRequest
0 голосов
/ 11 октября 2019

Извлеките все действительные уравнения из следующего текста.

Я пробовал несколько выражений регулярных выражений, но ни одно из них, похоже, не работает. В надежде использовать функции sub или gsub в R.

myText <- 'equation1: 2+3=5, equation2 is: 2*3=6, do not extract 2w3=6'
expected result : 2+3=5  2*3=6

Ответы [ 2 ]

1 голос
/ 11 октября 2019

Вот базовый подход R. Мы можем использовать grepexpr(), чтобы найти несколько совпадений уравнений во входной строке:

x <- c("equation1: 2+3=5, equation2 is: 2*3=6, do not extract 2w3=6")
m <- gregexpr("\\b\\w+(?:[+-\\*]\\w+)+=\\w+\\b", x)
regmatches(x, m)

[[1]]
[1] "2+3=5" "2*3=6"

Вот объяснение регулярного выражения:

\\b\\w+           match an initial symbol
(?:[+-\\*]\\w+)   then match at least one arithmetic symbol (+-\*) followed
                  by another variable

+=\\w+            match an equals sign, followed by a variable
0 голосов
/ 11 октября 2019

Для примеров, которые вы разместили, регулярное выражение (\d+[+\-*\/]\d+=\d+) должно извлекать уравнения, а не остальную часть текста. Обратите внимание, что это регулярное выражение не обрабатывает имена переменных / переменных, только числа и основные арифметические операторы. Может потребоваться адаптация для r.

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...