i具有两组参数的数学表达式:
- 字母,数字和特殊字符的任何组合
- 参数看起来像
"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选项才能正常工作。
请参阅此其他演示。