我是正则表达式的新手,想使用正则表达式来匹配(在我的 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/