我有以下字符串:
@Function1['param1', -100, 'param3'] * 120 + @Function2 - 15.5
此处@Function1
和@Function2
是函数名称,可以是任何单词([a-z] +)。函数名称始终以@
开头。
我们如何编写一个RegEx表达式,以便我得到两个函数:
@Function1['param1', -100, 'param3']
@Function2
如果函数名称后跟[
,那么我需要一切到下一个]
,否则只需要函数名称。
我尝试了以下正则表达式,但它最多只能用于1个参数。它在具有参数的函数名之后的第一个逗号处停止。
@[^\s\]]+?[\s\]]
修改
我认为这可以胜任,但不确定我会错过任何案件吗?
@\w+?(?:\[.+?\])?(?:\s)
答案 0 :(得分:0)
另一种可能的解决方案:
\@\w*(\s|\[.*])
设置全局标志
答案 1 :(得分:0)
我想我应该回答我自己的问题。 (抱歉发布问题而不是太努力)
这是我能做的最好的事情:
@\w+?(?:\[[^]]+?\])?(?=\s)
它与函数名称匹配,然后[
和]
之间的任何内容都是可选的。搜索以下一个空格结束。