2009-10-25 78 views
2

什麼是在搜索的後續部分中使用匹配表達式的一部分的正則表達式語法?正則表達式在搜索文本中使用值/變量進行替換/搜索

因此,例如,如果我有:
「{標記= 1}一些文本{/標記= 1}」

「{標記= 2}一些文本{/標記= 2}」

我想用模式中找到的第一個數字找到第二個數字。所以在
「{marker = 1} {marker = 2}一些文字{/ marker = 2} {/ marker = 1}」
正則表達式會匹配1和2。

到目前爲止,我已經想出了{marker =(\ d)}(。*?){/ marker =(\ d)},但不知道如何指定第二個\ d來引用在第一個\ d中找到的值。

我在C#中這樣做。

回答

2

嘗試: {marker=(\d)}(.*?){/marker=(\1)}

1

編號後向引用只是\ n,即\ 1應該在這裏工作:

Regex re = new Regex(@"\{marker=(\d)\}(.*?)\{/marker=(\1)\}"); 
// expect to work 
Console.WriteLine(re.IsMatch(@"{marker=1}some text{/marker=1}")); 
// expect to fail (end marker is different) 
Console.WriteLine(re.IsMatch(@"{marker=1}some text{/marker=2}")); 
相關問題