正则表达式 - 匹配@functin [args1 | args2]

时间:2013-04-04 07:41:31

标签: javascript regex

我遇到了与Regex中某种模式相匹配的问题

  • 案例1:@Function []
  • 案例2:@Function [args1 | args2]
  • 案例3:@Function

我想要这个结果

  • 案例1:1-功能2 -
  • 案例2:1-Function 2-args1 | args2
  • 案例3:1-功能2 -

我将第一个模式与\@(.?*)\[(.?*)\]匹配,但不匹配第三个模式。

感谢您的时间。 Aubin的

1 个答案:

答案 0 :(得分:1)

\@([^[\]]+)(?:\[(.*?)\])?

(顺便说一句,你在写这个正则表达式的时候犯了一个错误,我猜你写道:.?*

编辑:忘记了第二个捕获组。

Edit2:由于之前的原因不起作用,第一组的懒惰运算符确保获得最小的匹配。所以第二部分进行了测试,而第一部分是匹配的“”(没有),并且也是成功的,因为它有一个?操作