在一個項目中,我有一個類似圖案的文字:遞歸正則表達式處理嵌套字符串{|和|
{|文字{| |
更多文字
我想用方括號得到第一部分。爲此我遞歸地使用preg_match。下面的代碼工作已經罰款:
preg_match('/\{((?>[^\{\}]+)|(?R))*\}/x',$text,$matches);
但是如果我添加符號「|」,我得到了一個空的結果,我不知道爲什麼:
preg_match('/\{\|((?>[^\{\}]+)|(?R))*\|\}/x',$text,$matches);
我不能使用第一個解決方案,因爲在文本中{text}也可以存在。有人能告訴我我在這裏做錯了什麼嗎? THX
您可以在.NET中使用平衡組,如下所述: http://www.marcomilani.it/2012/07/english-nested-strings-with-regular-expressions-similar-to-recursive-regex。 html?lang = en – Marco 2012-07-17 11:46:34