繁体   English   中英

使用正则表达式获取数学表达式(单个字母,数字,方程式等)(在python中)

[英]Get mathematical expressions (single letters, numbers, equations…) using regex (in python)

我是regex的新手,并且想使用regex匹配字符串中的数学表达式(在我的python程序中)。 对于我(现在)来说,数学表达式是单个字母,数字和方括号之间的表达式。 因此,例如对于给定的句子(=字符串)

令表达式[[f(a)= a + 1]]中的变量a中的f(a)为100。

我想得到类似的东西:

并[f(a)中,100中,f(A)= A + 1]

我设法得到

1,方括号中的表达式使用[[(。*?)]]
2,使用\\ b [0-9a-zA-Z] {1} \\ b和一个字母和数字
3,数字一般用\\ d +

,但不能使用一个正则表达式来获取所有内容。

有人可以提供适当的正则表达式模块帮助,还是以pythonic的方式解决此问题会更好?

这将捕获您的数学表达式,而不管括号的数量(?<=\\[)[^\\[]*?(?=\\])

在这里查看演示regex101

要在python中获得带有数学表达式的列表,可以使用以下代码:

p = re.compile('(?<=\[)[^\[]*?(?=\])')

p.findall('YOUR TEXT HERE')

终于我明白了。 谢谢大家! 你让我今天一整天都感觉很好。

那就是我的正则表达式:

'(?<=[ ][[]{2}).*?(?=[]]{2}[ .!?])|\d+|\b[a-zA-Z0-9{+-}]*\([a-zA-Z0-9{+-}]*\)|\b[a-zA-Z]\b'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM