2013-06-29 34 views
2

此問題與Match unless "escape" character is present非常相似,但批准的解決方案在所有情況下都不起作用。除非出現「逃逸」字符,否則匹配;必須以內聯方式和背靠背方式工作

在我的場景中,我使用的是javascript,並且希望捕獲[方括號]中的內容,除非它們使用\ [斜槓]轉義。

A RegexPal is here

正則表達式

(?:[^\\]|^)\[([^\]]*)\] 

樣品再次進行測試,看看問題:

This is a [block], but as you can see it is trying to capture the preceeding character. 

You can \[escape] a block, but this creates \[problems] with [blocks] that are [stacked][back][to][back]. 
+0

捕捉你需要的數據你可以同時匹配和過濾之後。 – Gumbo

回答

1

JavaScript的正則表達式引擎不支持回顧後..

您可以使用此解決方案

(?:\s|^|\])\[(\w+)(?=\]) 

第1組中[]

Demo

+0

這對我的場景來說足夠好用了。謝謝Anirudh! – Anthony

+0

@Anthony oops ..在正則表達式中出現了一些小錯誤..如果'[]'在字符串的開頭,它就無法匹配..我糾正了錯誤..檢查出編輯 – Anirudha

+0

良好的抓住- 謝謝! – Anthony

相關問題