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

标签 python regex

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

"Let f(a) in the variable a be 100 in the expression [[f(a)=a+1]]."

我想要得到类似的东西:

[f(a),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')

关于python - 使用正则表达式(在 python 中)获取数学表达式(单个字母、数字、方程...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51439794/

相关文章:

python - pycaret.time_series.TSForecastingExperiment ImportError : cannot import name '_check_param_grid' from 'sklearn.model_selection._search'

python - 如何理解位数组中哪些位设置为 1

Python 3.6 - 在包含字典的列表中搜索单词,列表中包含字典

javascript - 使用 RegEx 在 Javascript 中匹配重复数字(相同的数字)两次

java - 正则表达式来查看字符串是否包含模式

javascript - 我需要在用户键入时搜索文本,但它可能有数百或数千页,我该如何有效地执行此操作

c++ - 选择嵌入式语言

python - 如何在 Pygame 中设置 Pong 的碰撞检测

javascript - 正则表达式用于捕获任何正常字符+数字+空格,但不捕获任何其他特殊字符

javascript - 一个或两个数字正则表达式