捕获方程参数的正则表达式



i具有两组参数的数学表达式:

  1. 字母,数字和特殊字符的任何组合
  2. 参数看起来像 "HUB_XX",其中 XX是numer(一个或多个数字)

因此,公式可能看起来像:(a1 * ((bb * HUB_1)+c))+(d * ((e * HUB_1)+f))+13,56。我的任务是首先捕获第一组中的所有参数,这意味着所有不是数学运算符(+-/*())或不是"HUB"参数(在这种情况下为HUB_1)或不是常数(13,56)。在给定的示例中,应导致匹配:a1,bb,c,d,e,f在下一步中,我需要仅匹配看起来像HUB_number

的参数

第二个表达式非常简单,但我正在与第一个表达式挣扎。我的工作环境是VBA(excel,访问)。

有人可以建议吗?预先感谢!

此正则将检索您的第一组信息:

(?!HUB_d+)b[a-zA-Z][^+-/*()]*b

请注意,匹配的参数必须以字母开头。

在此处查看此演示。

编辑:如果要使用希腊字符,则应添加 p {Greek}参数:

(?!HUB_d+)b[a-zA-Zp{Greek}][^+-/*()]*b

请注意,您必须使用u NICODE选项才能正常工作。

请参阅此其他演示。

最新更新