如何从 Mathpix API 字符串响应中获取方程式



当我从数学 3 方程解决问题的相机中单击照片时。

Mathpix API 给出这样的响应:

"\左。\beginarray l

2 x + 3 y + 3 z = 8 \ 3 x + y + 2 z = 10 \ 8 x + 9 x + 10 z = 12 \endarray \right."我想使用模式匹配或任何最佳解决方案从这个字符串(API 响应(中获取三个方程。从编辑文本计算它。

假设您的字符串对于语法是 100% 准确的,我提供以下解决方案:

\\left\.\s+\\beginarray\s+l\s+([\d\s\+=\-*\/%^x-z]+)\s+\\\s+([\d\s\+=\-*\/%^x-z]+)\s+\\\s+([\d\s\+=\-*\/%^x-z]+)\s+\\endarray\s+\\right\.

使用此正则表达式模式,您将收到以下字符串

Group1 == "2 x + 3 y + 3 z = 8"
Group2 == "3 x + y + 2 z = 10"
Group3 == "8 x + 9 x + 10 z = 12"

请注意,这已经是一个Java字符串。纯粹的"正则表达式"是

\left.s+\beginarrays+ls+([ds+=-*/%^x-z]+)s+\s+([ds+=-*/%^x-z]+)s+\s+([ds+=-*/%^x-z]+)s+\endarrays+\right.

此外,这将匹配您的字符串和包含的 (3( 公式,但如果您更改数字,它将不再起作用。还有很多其他事情可能会破坏这一点。 看起来有点像你的语法应该描述一棵树:

left
beginarray
[formula]+
endarray
right

假设这只是更大语法的一部分,并且元素之间可能还有其他东西(例如另一个数组(,你需要的不仅仅是正则表达式。你需要定义一个语法并进行分析。

最新更新