2013-04-04 64 views
0

我有一個問題,在正則表達式匹配正則表達式 - 比賽@functin [args1 | args2]

某種模式
  • 案例1:@Function []
  • 案例2:@Function [args1 | args2]
  • 案例3:@Function

我想這個結果

  • 案例1:1趣ction 2-
  • 情況2:1 - 功能2-args1 | args2
  • 情況3:1-功能2-

我兩個第一圖案與\@(.?*)\[(.?*)\]但不是第三匹配。

謝謝你的時間。 奧賓

+0

你的模式或答案怎麼沒有在其中使用「功能」這個詞......它可以是任何東西? – 2013-04-04 08:10:13

回答

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

(順便說一句,你犯了一個錯誤,而寫在這裏您正則表達式我想,你寫道:.?*

編輯:忘了第二個捕獲組。

編輯2:至於以前沒有工作的原因,第一組的懶惰運營商確保獲得最小的匹配。所以第二部分是在第一個匹配的「」(沒有)的情況下進行測試的,而且它也是成功的,因爲它有一個?運營商。

+0

+1對不正確的懶惰消費也有很好的吸引力。 – Sepster 2013-04-04 07:49:18

+0

這似乎是錯誤的這正則表達式不匹配任何東西.. – Fassbender 2013-04-04 08:05:14

+1

@AubinLorieux對不起,這顯然是錯誤的是:)糾正和工作。 – Loamhoof 2013-04-04 08:07:51