0

我在匹配正则表达式中的某个模式时遇到问题

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

我想要这个结果

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

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

感谢您的时间。欧宾

4

1 回答 1

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

(顺便说一句,我猜你在这里写你的正则表达式时犯了一个错误,就像你写的那样.?*:)

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

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

于 2013-04-04T07:44:02.717 回答