我有一组包含两组参数的数学表达式:
"HUB_XX"
的参数,其中XX
是一个数字(一个或多个数字)因此公式可能如下:(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,Access)。
有人可以就此提出建议吗?提前谢谢!
答案 0 :(得分:0)
此正则表达式将检索您的第一组信息:
(?!HUB_\d+)\b[a-zA-Z][^+-\/*()]*\b
请注意,匹配的参数必须以字母开头。
请参阅此demo here。
编辑:如果您希望能够使用希腊字符,则应添加\ p {Greek}参数:
(?!HUB_\d+)\b[a-zA-Z\p{Greek}][^+-\/*()]*\b
请注意,您必须使用u
nicode选项才能生效。
请参阅此other demo。