2010-03-30 60 views
3

我正在用查找/替換更改爲數據綁定文本一堆標籤。Visual Studio的正則表達式查找/替換錯誤

基本上我想要的東西轉換成像

<asp:Label ID="lbl213" runat="server" /> 

<%# Eval("_213")%> 

這裏是我的正則表達式

<asp:Label ID="lbl{\d*}" runat="server" /> 

這裏是我的替代

<%# Eval("_\1")%> 

這裏是我的錯誤了

未知參數 ':' 操作符。完整的正則表達式在搜索字符串中需要。

我該如何解決這個問題?

編輯:
我也試過以下

<asp{\:}Label ID="lbl{\d*}" runat="server" /> 

但迴應是,

指定的文本沒有被發現。

+1

我不知道ASP,這就是爲什麼我只是把這個在評論,但是......這聽起來像也許你只需要逃避冒號,如:\: – 2010-03-30 02:50:20

+0

我曾嘗試逃跑結腸... 沒有骰子。我試圖** ** FIND''**更換**'<%#的eval( 「\ 2」)%> ',但仍沒有運氣 – 2010-03-30 02:55:57

+0

什麼完全移除冒號,只是爲了看看它是否會工作?對不起,我不能更有幫助;我真的不知道VC或ASP。也許這會幫助你粘貼使用該正則表達式的實際代碼?另外兩個想到的事情:/或者需要逃避,而反斜槓可能需要自行逃脫;如在\\中。 – 2010-03-30 03:10:15

回答

1

表達:

\<asp\:Label ID="lbl{:d+}" runat="server" /\> 

將工作也很不錯。您只需要轉義冒號和尖括號。

2

好神聖的廢話。基本上,你要什麼都逃不過這不是一個文本字符

\<asp\:Label ID\=\"lbl{:z}\" runat\=\"server\" \/\> 
+0

哦,太棒了!很好,至少你有它的工作。 – 2010-03-30 03:20:41

+1

請注意,Visual Studio的正則表達式非常不典型。在大多數你在這裏提到的正則表達式中,冒號和尖括號字符沒有特殊的含義,除非它們是像'(?:...)'(非捕獲組)或者(? <= ...)'(lookbehind),所以沒有必要逃避它們。 – 2010-03-30 03:54:27