【问题标题】:visual studio Regex Find/Replace error视觉工作室正则表达式查找/替换错误
【发布时间】:2011-02-02 07:25:10
【问题描述】:

我正在使用 Find/Replace 将一堆标签更改为 DataBound 文本。

基本上我正在尝试转换类似的东西

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

<%# Eval("_213")%>

这是我的正则表达式

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

这是我的替换

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

这是我的错误

':' 运算符的未知参数。搜索字符串中需要完整的正则表达式。

我该如何解决这个问题?

编辑:
我也尝试了以下

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

但反应是这样的

找不到指定的文本。

【问题讨论】:

  • 我不懂 ASP,这就是为什么我只是把它放在评论中,但是......听起来你可能只需要转义冒号,比如:\:跨度>
  • 我确实尝试过逃避冒号...没有骰子。我试过 **FIND**&lt;asp{\:}Label ID="lbl{:z}" runat="server" /&gt; **REPLACE**&lt;%# Eval("\2")%&gt;,但还是没有运气
  • 完全删除冒号怎么样,看看它是否有效?对不起,我不能提供更多帮助;我真的一点也不了解VC或ASP。如果您粘贴使用该正则表达式的实际代码,也许会有所帮助?想到了另外两件事: / 可能需要转义,反斜杠可能需要自己转义;如 \\.
  • 感谢您的尝试。没有使用正则表达式的“代码”。我正在使用 Visual Studio 中内置的正则表达式“查找/替换”功能。我确实尝试过转义反斜杠,但我似乎也无法让它以这种方式工作。非常混乱。

标签: visual-studio regex replace


【解决方案1】:

好吧,废话。您基本上必须转义不是文本字符的所有内容

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

【讨论】:

  • 请注意,Visual Studio 的正则表达式风格非常不典型。在您在这里看到的大多数正则表达式风格中,冒号和尖括号字符没有特殊含义,除非它们是某些正则表达式结构的一部分,例如 (?:...)(非捕获组)或 (?&lt;=...)(后视),所以有无需逃避它们。
【解决方案2】:

表达式:

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

也可以正常工作。您只需要转义冒号和尖括号即可。

【讨论】:

    猜你喜欢
    • 2013-04-19
    • 2016-04-26
    • 2011-08-12
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多